<?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>97400</bug_id>
          
          <creation_ts>2012-09-22 15:54:14 -0700</creation_ts>
          <short_desc>Implement OES_element_index_uint / WEBKIT_OES_element_index_uint</short_desc>
          <delta_ts>2012-10-18 11:18:48 -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>WebGL</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>rmnoon</reporter>
          <assigned_to name="Brandon Jones">bajones</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>bajones</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>noam</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>726183</commentid>
    <comment_count>0</comment_count>
    <who name="">rmnoon</who>
    <bug_when>2012-09-22 15:54:14 -0700</bug_when>
    <thetext>Out of the box, OpenGL ES 2 lacks the ability to use index buffers to index into VBOs with more than 2^16 elements (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawElements.xml).  The extension OES_element_index_uint adds support for using unsigned integers, thereby supporting VBOs with 2^32 elements.  This is an important extension and is supported on desktop-class hardware and was added to iOS 5.

The WebGL spec is here:
http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/

The specification has been upgraded to Draft status, and thus may now be implemented by browsers under vendor-specific names.  The name for this extension in WebKit is WEBKIT_OES_element_index_uint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741277</commentid>
    <comment_count>1</comment_count>
      <attachid>168500</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-12 15:45:53 -0700</bug_when>
    <thetext>Created attachment 168500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741304</commentid>
    <comment_count>2</comment_count>
      <attachid>168508</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-12 16:24:57 -0700</bug_when>
    <thetext>Created attachment 168508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741392</commentid>
    <comment_count>3</comment_count>
      <attachid>168508</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-12 19:58:08 -0700</bug_when>
    <thetext>Comment on attachment 168508
Patch

Attachment 168508 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14288125

New failing tests:
fast/canvas/webgl/oes-element-index-uint.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741459</commentid>
    <comment_count>4</comment_count>
      <attachid>168508</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-13 02:38:46 -0700</bug_when>
    <thetext>Comment on attachment 168508
Patch

Attachment 168508 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14286171

New failing tests:
platform/chromium/virtual/gpu/fast/canvas/webgl/oes-element-index-uint.html
fast/canvas/webgl/oes-element-index-uint.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742193</commentid>
    <comment_count>5</comment_count>
      <attachid>168742</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-15 11:07:31 -0700</bug_when>
    <thetext>Created attachment 168742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743307</commentid>
    <comment_count>6</comment_count>
      <attachid>168976</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-16 10:59:35 -0700</bug_when>
    <thetext>Created attachment 168976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745342</commentid>
    <comment_count>7</comment_count>
      <attachid>169429</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-18 09:59:59 -0700</bug_when>
    <thetext>Created attachment 169429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745382</commentid>
    <comment_count>8</comment_count>
      <attachid>169429</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-10-18 10:54:24 -0700</bug_when>
    <thetext>Comment on attachment 169429
Patch

Looks good. Nice work on the tests in particular. We should consider refactoring them as was done for conformance/textures/tex-image-and-sub-image-2d-with-canvas.html and related tests in order to reduce duplication. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745404</commentid>
    <comment_count>9</comment_count>
      <attachid>169429</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 11:18:42 -0700</bug_when>
    <thetext>Comment on attachment 169429
Patch

Clearing flags on attachment: 169429

Committed r131780: &lt;http://trac.webkit.org/changeset/131780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745405</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 11:18:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168500</attachid>
            <date>2012-10-12 15:45:53 -0700</date>
            <delta_ts>2012-10-12 16:24:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97400-20121012154452.patch</filename>
            <type>text/plain</type>
            <size>60245</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIwY2I0ZmEwOWEyOTUy
NWViZjhjNWMxYmVkOGY2NmQ0NTFkMjNjNS4uNDFhMWMwODM3NTdlYmEzM2Q4ZjNjMzI5MDU3Mzc0
YjRlM2Q4ZTUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTEyICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xMSAgR2VvZmZyZXkg
R2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1ZTAzMzNlNDhlZGQ2NDQ4NmM0
MzA1YTAyYzJkZjU1YjRlZWRjNzI0Li4xYWZkZjI1MDRhMWQ4ZDZjNmI0OTkzYzhmNWI2ZWMwMzQ4
NmY2MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTIwLDYgKzUyMCw3IEBAIFNFVChXZWJD
b3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRs
CiAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAogICAgIGh0bWwvY2FudmFzL09F
U1ZlcnRleEFycmF5T2JqZWN0LmlkbAorICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMv
VWludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwKQEAgLTE0Nzks
NiArMTQ4MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9PRVNTdGFu
ZGFyZERlcml2YXRpdmVzLmNwcAogICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAK
ICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKyAgICBodG1sL2NhbnZh
cy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNw
cAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAogICAgIGh0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwCkBAIC0yNTMyLDYgKzI1MzQsNyBA
QCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2
YXRpdmVzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorICAgICAgICBodG1sL2Nh
bnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwCkBAIC0y
NTU5LDEyICsyNTYyLDE0IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1
cmVGbG9hdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3Bw
CisgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmlk
bAogICAgICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwKKyAgICAgICAg
aHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xBY3RpdmVJbmZvLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkNjkwODU2NGQwZDVkNzljZmNiNjYwYjRiZGEz
ZDRhN2ZiNjJjYTAxLi43YjBkMDFlYTVhODI1MmUwZDc2OGVlMmM1OTJjNjc3YzBlMzRkYzRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3NSw2ICszNzUsNyBAQCBCSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCA4NGM5ZDA3
NzcxZWQxYTE3NDU2NjcyZTI3MWUzMzFiY2E0ZTY4NThlLi43ZjQ2ODI3ZmVlZjc3ZTFhOTVjNzNk
OTY5YjNkMmVlYzg3NTgyZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0zMDEs
NiArMzAxLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNT
dGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVGV4dHVy
ZUZsb2F0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
aWRsIFwKKyAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbCBcCiAg
ICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbCBcCiAgICAgJCRQV0QvaHRt
bC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggZDVhZjM2YzM0ZDNmNGFlNzlhYjY2YWYwMTY1MmY0MTllYWY3YmRlNi4uMzNiZTg0ZTk0M2U0
MTExOTQ3YTAwNTg1Njk1MTU1N2RlZWVjMGZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC01NzksNiArNTc5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTT0VTRWxlbWVudEluZGV4VWludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
RVNFbGVtZW50SW5kZXhVaW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
c2NpbGxhdG9yLmNwcCBcCkBAIC0xNTEyLDYgKzE1MTQsNyBAQCBkb21fYmluZGluZ19pZGxzICs9
IFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogCSQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKwkkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL1VpbnQxNkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MzJBcnJh
eS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXApAQCAtMzE4
NCw2ICszMTg3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
RVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNF
bGVtZW50SW5kZXhVaW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxl
bWVudEluZGV4VWludC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2
ZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmlu
ZGV4IDQyM2M2MTliNWNiMTJmNGQ4MjQ5YzhmMDcwOWQwMzYxOTlmNzRlODUuLjVmOGVmZWNlMDhk
YjkwNGQxMzA3M2Y1NGU5Y2ZkYjJhZDczYjQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzg5Miw2ICsz
ODkyLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmggXAorICAgICAgICBo
dG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmggXAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9u
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggXApA
QCAtMzkyNSw2ICszOTI2LDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2NhbnZh
cy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1Rl
eHR1cmVGbG9hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRmMTkyODUxYjYzMDNh
MDE0OGI2ZjE1OGZiZWNkYzlhNWUyOTAzMDguLjE0MjM3MWI5ZWI5N2YxZTFmZTFhMmMxYTM1MWFi
OGVmMmYyNDBjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExNTgsNiArMTE1OCw3IEBACiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9j
YW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1VpbnQxNkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDMyQXJyYXku
aWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCcsCkBAIC00MzA0
LDYgKzQzMDUsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5o
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmgnLAorICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwJywKKyAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmgnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMQWN0aXZlSW5mby5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TEJ1ZmZlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgnLApA
QCAtNzc4MSw2ICs3Nzg0LDggQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0LmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5j
cHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWludC5jcHAnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50
SW5kZXhVaW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93RXZlbnQuaCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BhZ2VUcmFuc2l0aW9u
RXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2YThhOTc2MmM2MDVmMjEzNjQ5MDg1OGMzNDJkMDRjMjlhM2M2M2Mx
Li41MzViYmRlNTI0MTFhZWZkZTcxMjNhZjg4MDdiMjc3N2ZmYzU1Yjc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTk3LDYg
KzE5OTcsMTAgQEAKIAkJN0UxMkU5MTAxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1l
c2hHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0
b3IuY3BwICovOyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UzM0NE
MDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAg
LyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VM
b2FkZXJDRi5jcHAgKi87IH07CisJCTdFNDZGNkZBMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWlu
dC5jcHAgKi87IH07CisJCTdFNDZGNkZCMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJ
bmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsg
fTsKKwkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzMx
NjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OworCQk3RTVE
N0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAwODk2
QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2NDY4
RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUg
LyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMwQjEz
ODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4RkIw
MUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDVGMTJEMjZFMzgwMEU3OTQxNSAv
KiBBdXRoZW50aWNhdGlvbkNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFRTY4NDRDMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNG
LmNwcCAqLzsgfTsKQEAgLTkyMjcsNiArOTIzMSwxMCBAQAogCQk3RTEyRTkwRTE1RkE1RDNBMDA1
RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcDsgcGF0aCA9
IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJpb3JpdHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJl
c291cmNlTG9hZGVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
U3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHBhdGggPSBjZi9TdWJyZXNvdXJjZUxvYWRlckNGLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIz
IC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhV
aW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTRWxlbWVudEluZGV4
VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTVEN0E3MzE2MUQzRjhGMDA4
OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNF
bGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U1RDdB
NzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBwYXRoID0gY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U5
OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dGb2N1c0FsbG93ZWRJ
bmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1NDBCMTM4
NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0
aGVudGljYXRpb25DRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dXRoZW50aWNhdGlvbkNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTE3
LDYgKzE1MTI1LDggQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJN0U1RDdBNzMxNjFE
M0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovLAorCQkJCTdFNUQ3QTc0
MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8sCiAJCQkJNDlFRUNE
Q0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlkbCAqLywKIAkJCQk0OUVFQ0RDOTEw
NTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmlkbCAqLywKIAkJCQk2RTRFOTFBNzEw
RjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovLApAQCAtMTg0
NTcsNiArMTg0NjcsOCBAQAogCQkJCUU0NDYxNDExMENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlh
RXJyb3IuaCAqLywKIAkJCQkxMDU5NDU3NTE1QjQyQTBEMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJ
dGVtVmFsdWUuY3BwICovLAogCQkJCTEwNTk0NTc5MTVCNDJBNDMwMDREMzdGRCAvKiBKU01pY3Jv
RGF0YUl0ZW1WYWx1ZS5oICovLAorCQkJCTdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwICovLAorCQkJCTdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAv
KiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLywKIAkJCQk5MDAxNzg3RTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLywKIAkJCQk5MDAxNzg3RjEyRTAz
NzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8sCiAJCQkJNkVCRjBF
NzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCAqLywKQEAgLTI1NTc2
LDYgKzI1NTg4LDggQEAKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEJDODQzMTYxQ0YwNUMwMDRE
NTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyOEJEOUUxNjI1
MzY5NjAwQzQwQjU2IC8qIFNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVnaWVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJN0U0NkY2RkIxNjI3QTJDQTAwMDYyMjIzIC8qIEpTT0VTRWxl
bWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY3OCw2ICsyODY5Miw4IEBACiAJ
CQkJMzE5NTVBODYxNjBEMTk5MDAwODU4MDI1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJDODNGMTYxQ0YwNEEwMDRENTJGNCAvKiBSZXNvdXJj
ZUJ1ZmZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAv
KiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RTVEN0E3NjE2MUQzRjhG
MDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
RTQ2RjZGQTE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGY0YWY1NWQ4MjZiNmVhZmNl
ZmYyNTQyMGMwMGIxYzdhN2Y0NjJiMGUuLmM5M2YzNDAxZTcwMWZiNzQ2NjExMTQ1OWVkNDMzOGM5
YzUxNzc5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgog
I2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkpTT0VTRWxlbWVudEluZGV4VWlu
dC5oIgogI2luY2x1ZGUgIkpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIkpT
T0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgpA
QCAtNTcsNiArNTgsNyBAQAogI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5o
IgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5oIgogI2luY2x1
ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC0yMDAsNiArMjAyLDggQEAgc3RhdGljIEpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFdlYkdMRXh0ZW4KICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdM
RXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6CiAgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihl
eHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVtZW50SW5kZXhVaW50
TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFt
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDA2MzU0OTY5ZDQ0
ZDNjNDZhNTkzZGRhNTU0YTM1ZDJmMTA4Njk2NmQuLjQxNTY4MzJkMmRjODRhNzI0NmJlNmQyNzU2
NTU1NWUyMGQ0ZWZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlY4SW50MTZBcnJheS5oIgogI2luY2x1ZGUgIlY4
SW50MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SW50OEFycmF5LmgiCisjaW5jbHVkZSAiVjhPRVNF
bGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiVjhPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgi
CiAjaW5jbHVkZSAiVjhPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJWOE9FU1ZlcnRleEFy
cmF5T2JqZWN0LmgiCkBAIC0xOTEsNiArMTkyLDEwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4
CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJy
YXlPYmplY3QqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAg
cmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVjdE5hbWUiOwogICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToKKyAg
ICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNFbGVtZW50SW5kZXhV
aW50Kj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CisgICAgICAgIHJlZmVy
ZW5jZU5hbWUgPSAib2VzRWxlbWVudEluZGV4VWludE5hbWUiOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToKICAgICAg
ICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVy
ZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWUiOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OWRmMGJjMTVjMzkxNjE3Y2Q5MGI3ZjI0ZDc1ODQxY2UxMjIxOTg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShX
RUJHTCkKKworI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitPRVNFbGVtZW50SW5kZXhVaW50OjpPRVNFbGVtZW50SW5kZXhVaW50KFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQp
Cit7Cit9CisKK09FU0VsZW1lbnRJbmRleFVpbnQ6On5PRVNFbGVtZW50SW5kZXhVaW50KCkKK3sK
K30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgT0VTRWxlbWVudEluZGV4VWludDo6
Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE9FU0VsZW1lbnRJbmRleFVpbnROYW1lOwor
fQorCitQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+IE9FU0VsZW1lbnRJbmRleFVpbnQ6
OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBPRVNFbGVtZW50SW5kZXhVaW50KGNvbnRleHQpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZDQy
ODczYTIwNTRkMDU4ODNhNzM5MzgxMTY4M2Y5MThlZWViYzQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmgKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgT0VTRWxlbWVudEluZGV4VWludF9oCisjZGVmaW5lIE9F
U0VsZW1lbnRJbmRleFVpbnRfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE9F
U0VsZW1lbnRJbmRleFVpbnQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwgfk9FU0VsZW1lbnRJbmRleFVpbnQoKTsKKyAg
ICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAg
IE9FU0VsZW1lbnRJbmRleFVpbnQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBPRVNFbGVtZW50SW5kZXhVaW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGE1NjQwMTUzZmI0ZjY1MWIyMjA2NTNkMjhjNTMzYWNlZWFkOTgxYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRl
eFVpbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEpTR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBP
RVNFbGVtZW50SW5kZXhVaW50IHsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRXh0ZW5zaW9uLmgKaW5kZXggNjk2OGEwMmI0Yjk5YWJhODdhNGNkMjE1ODIwMzY1
ODk2ZjNjODEyMy4uZmZlYzYxNmNhYmY4MTBkNmNlMDI2NjUxNzg3N2EyYjdmNjU1MWYwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCkBAIC00NCw2ICs0
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xEZWJ1Z1NoYWRlcnNOYW1lLAogICAgICAgICBX
ZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVu
dGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbAogICAgICAgICBXZWJLaXRXZWJHTERlcHRoVGV4dHVy
ZU5hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbAorICAg
ICAgICBPRVNFbGVtZW50SW5kZXhVaW50TmFtZSwKICAgICB9OwogCiAgICAgdm9pZCByZWYoKSB7
IG1fY29udGV4dC0+cmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDU4MmVkNWQzOThhYzNmMjQ3ZWI2YWFl
YjZlZWRhODVlMjk0ZTVjODQuLjBlMWY0YWJiZTNiMDFhOTA1Yzc1MWEzMzkxZmZlNDM1ZjRjNjA2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgog
I2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJPRVNTdGFuZGFyZERlcml2YXRp
dmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiT0VTVmVydGV4
QXJyYXlPYmplY3QuaCIKQEAgLTE2OTAsNyArMTY5MSwxOCBAQCBib29sIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKEdDM0RzaXplaSBjb3VudCwgR0MzRGVu
dW0gdAogICAgIGlmIChvZmZzZXQgPCAwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQpIHsKKyAgICBpZiAo
dHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfSU5UKSB7CisgICAgICAgIC8vIEZv
ciBhbiB1bnNpZ25lZCBpbnQgYXJyYXksIG9mZnNldCBtdXN0IGJlIGRpdmlzaWJsZSBieSA0IGZv
ciBhbGlnbm1lbnQgcmVhc29ucy4KKyAgICAgICAgaWYgKG9mZnNldCAlIDQpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gTWFrZSB1b2Zmc2V0IGFuIGVsZW1lbnQgb2Zm
c2V0LgorICAgICAgICBvZmZzZXQgLz0gNDsKKworICAgICAgICBHQzNEc2l6ZWlwdHIgbiA9IGVs
ZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC8gNDsKKyAgICAgICAgaWYgKG9mZnNldCA+
IG4gfHwgY291bnQgPiBuIC0gb2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0gZWxzZSBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQpIHsK
ICAgICAgICAgLy8gRm9yIGFuIHVuc2lnbmVkIHNob3J0IGFycmF5LCBvZmZzZXQgbXVzdCBiZSBk
aXZpc2libGUgYnkgMiBmb3IgYWxpZ25tZW50IHJlYXNvbnMuCiAgICAgICAgIGlmIChvZmZzZXQg
JSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTcwOSw3ICsxNzIxLDcgQEAgYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRWxlbWVudEFycmF5U2l6ZShHQzNEc2l6
ZWkgY291bnQsIEdDM0RlbnVtIHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0
eXBlLCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIHVuc2lnbmVk
JiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAgIC8vIFBlcmZvcm1zIGNvbnNlcnZhdGl2ZSB2
YWxpZGF0aW9uIGJ5IGNhY2hpbmcgYSBtYXhpbXVtIGluZGV4IG9mCiAgICAgLy8gdGhlIGdpdmVu
IHR5cGUgcGVyIGVsZW1lbnQgYXJyYXkgYnVmZmVyLiBJZiBhbGwgb2YgdGhlIGJvdW5kCkBAIC0x
NzQ2LDYgKzE3NTgsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5k
ZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG4KICAgICAgICAgICAgICAg
ICBtYXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihwW2ldKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9JTlQ6IHsKKyAgICAgICAgICAgIGlmICghbV9vZXNFbGVtZW50SW5kZXhVaW50
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIG51bUVsZW1lbnRz
IC89IHNpemVvZihHQzNEdWludCk7CisgICAgICAgICAgICBjb25zdCBHQzNEdWludCogcCA9IHN0
YXRpY19jYXN0PGNvbnN0IEdDM0R1aW50Kj4oYnVmZmVyLT5kYXRhKCkpOworICAgICAgICAgICAg
Zm9yIChHQzNEc2l6ZWlwdHIgaSA9IDA7IGkgPCBudW1FbGVtZW50czsgaSsrKQorICAgICAgICAg
ICAgICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBzdGF0aWNfY2FzdDxpbnQ+KHBbaV0pKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE3NjIsMTAgKzE3ODMsMTAgQEAgYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShH
QzNEZW51bSB0eXBlLCBpbnQmIG4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXplaSBjb3Vu
dCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQsIGludCYgbnVtRWxlbWVudHNSZXF1
aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVj
aXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQsIHVu
c2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAgIEFTU0VSVChjb3VudCA+PSAwICYm
IG9mZnNldCA+PSAwKTsKLSAgICBpbnQgbGFzdEluZGV4ID0gLTE7CisgICAgdW5zaWduZWQgbGFz
dEluZGV4ID0gMDsKICAgICAKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IGVsZW1lbnRBcnJheUJ1
ZmZlciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCk7
CiAKQEAgLTE3ODMsNyArMTgwNCwxNiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFs
aWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtCiAgICAgdW5z
aWduZWQgbG9uZyB1b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHVuc2lnbmVkIGxvbmcgbiA9IGNvdW50
OwogCi0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUKSB7
CisgICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0lOVCkgeworICAg
ICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZzZXQuCisgICAgICAgIHVvZmZzZXQg
Lz0gc2l6ZW9mKEdDM0R1aW50KTsKKyAgICAgICAgY29uc3QgR0MzRHVpbnQqIHAgPSBzdGF0aWNf
Y2FzdDxjb25zdCBHQzNEdWludCo+KGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVm
ZmVyKCktPmRhdGEoKSkgKyB1b2Zmc2V0OworICAgICAgICB3aGlsZSAobi0tID4gMCkgeworICAg
ICAgICAgICAgaWYgKCpwID4gbGFzdEluZGV4KQorICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9
ICpwOworICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICh0eXBlID09
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkgewogICAgICAgICAvLyBNYWtlIHVv
ZmZzZXQgYW4gZWxlbWVudCBvZmZzZXQuCiAgICAgICAgIHVvZmZzZXQgLz0gc2l6ZW9mKEdDM0R1
c2hvcnQpOwogICAgICAgICBjb25zdCBHQzNEdXNob3J0KiBwID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
R0MzRHVzaG9ydCo+KGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCktPmRh
dGEoKSkgKyB1b2Zmc2V0OwpAQCAtMTgwNiw3ICsxODM2LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNE
ZW51bQogICAgIHJldHVybiBudW1FbGVtZW50c1JlcXVpcmVkID4gMDsKIH0KIAotYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRz
UmVxdWlyZWQpCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVSZW5kZXJpbmdT
dGF0ZSh1bnNpZ25lZCBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAgIGlmICghbV9jdXJyZW50
UHJvZ3JhbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyMyw3ICsxODUzLDcgQEAgYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5nU3RhdGUoaW50IG51bUVs
ZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gTG9vayBpbiBl
YWNoIGNvbnN1bWVkIHZlcnRleCBhdHRyaWIgKGJ5IHRoZSBjdXJyZW50IHByb2dyYW0pIGFuZCBm
aW5kIHRoZSBzbWFsbGVzdCBidWZmZXIgc2l6ZQotICAgIGludCBzbWFsbGVzdE51bUVsZW1lbnRz
ID0gSU5UX01BWDsKKyAgICB1bnNpZ25lZCBzbWFsbGVzdE51bUVsZW1lbnRzID0gVUlOVF9NQVg7
CiAgICAgaW50IG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyA9IG1fY3VycmVudFByb2dyYW0tPm51
bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQWN0
aXZlQXR0cmliTG9jYXRpb25zOyArK2kpIHsKICAgICAgICAgaW50IGxvYyA9IG1fY3VycmVudFBy
b2dyYW0tPmdldEFjdGl2ZUF0dHJpYkxvY2F0aW9uKGkpOwpAQCAtMTgzNCw3ICsxODY0LDcgQEAg
Ym9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5nU3RhdGUoaW50IG51
bUVsZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBsYXN0IGVsZW1l
bnQsIHdlIHdpbGwgb25seSB0b3VjaCB0aGUgZGF0YSBmb3IgdGhlCiAgICAgICAgICAgICAgICAg
Ly8gZWxlbWVudCBhbmQgbm90aGluZyBiZXlvbmQgaXQuCiAgICAgICAgICAgICAgICAgaW50IGJ5
dGVzUmVtYWluaW5nID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0ZS5idWZmZXJCaW5kaW5nLT5ieXRl
TGVuZ3RoKCkgLSBzdGF0ZS5vZmZzZXQpOwotICAgICAgICAgICAgICAgIGludCBudW1FbGVtZW50
cyA9IDA7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtRWxlbWVudHMgPSAwOwogICAgICAg
ICAgICAgICAgIEFTU0VSVChzdGF0ZS5zdHJpZGUgPiAwKTsKICAgICAgICAgICAgICAgICBpZiAo
Ynl0ZXNSZW1haW5pbmcgPj0gc3RhdGUuYnl0ZXNQZXJFbGVtZW50KQogICAgICAgICAgICAgICAg
ICAgICBudW1FbGVtZW50cyA9IDEgKyAoYnl0ZXNSZW1haW5pbmcgLSBzdGF0ZS5ieXRlc1BlckVs
ZW1lbnQpIC8gc3RhdGUuc3RyaWRlOwpAQCAtMTkzNCw2ICsxOTY0LDExIEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURToK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVDoKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfSU5UOgorICAgICAgICBp
ZiAobV9vZXNFbGVtZW50SW5kZXhVaW50KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJkcmF3RWxl
bWVudHMiLCAiaW52YWxpZCB0eXBlIik7CisgICAgICAgIHJldHVybjsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZHJhd0VsZW1lbnRzIiwgImludmFsaWQgdHlwZSIpOwogICAgICAgICByZXR1cm47CkBAIC0x
OTU0LDcgKzE5ODksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0VsZW1lbnRz
KEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaW50IG51bUVsZW1lbnRzID0gMDsKKyAgICB1bnNpZ25lZCBudW1FbGVt
ZW50cyA9IDA7CiAgICAgaWYgKCFpc0Vycm9yR2VuZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vzc2Vz
KCkpIHsKICAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgYSB2YWxpZCByZW5kZXJpbmcgc3RhdGUK
ICAgICAgICAgaWYgKCF2YWxpZGF0ZUVsZW1lbnRBcnJheVNpemUoY291bnQsIHR5cGUsIHN0YXRp
Y19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCkpKSB7CkBAIC0yMzE1LDYgKzIzNTAsMTQgQEAgV2Vi
R0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgbmFtZSkKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNWZXJ0ZXhBcnJheU9i
amVjdC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJPRVNf
ZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpIHsKKyAgICAgICAgaWYg
KCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50Iik7Cisg
ICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBPRVNFbGVtZW50SW5kZXhVaW50Ojpj
cmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fb2VzRWxlbWVudEluZGV4
VWludC5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfbG9zZV9jb250ZXh0IikKICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIGFm
dGVyIGEgY2VydGFpbiBncmFjZSBwZXJpb2QuCiAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNl
KG5hbWUsICJXRUJLSVRfbG9zZV9jb250ZXh0IikpIHsKQEAgLTI4MTYsNiArMjg1OSw4IEBAIFZl
Y3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9u
cygpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKTsKICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJP
RVNfdmVydGV4X2FycmF5X29iamVjdCIpOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS0+c3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwogICAgIHJlc3VsdC5hcHBlbmQo
IldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEM6OnN1cHBvcnRlZCh0aGlzKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lU
X1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDQ1ZGY2YTU4MjVmNDY4
ZTg2ZGViMjg3Y2M4NWYwYzZhMjY3ODk1MmEuLjFkYTQ1YTM0ZTA0M2YzMDY5N2JjMDM0MzhiNjc1
NTJjMDE5YjE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEludFNpemU7CiBjbGFz
cyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwogY2xhc3MgT0VTVGV4dHVyZUZsb2F0OwogY2xhc3Mg
T0VTVmVydGV4QXJyYXlPYmplY3Q7CitjbGFzcyBPRVNFbGVtZW50SW5kZXhVaW50OwogY2xhc3Mg
V2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJHTENvbnRleHRH
cm91cDsKQEAgLTM1OCwxMiArMzU5LDEyIEBAIHB1YmxpYzoKICAgICBib29sIHZhbGlkYXRlRWxl
bWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIg
b2Zmc2V0KTsKIAogICAgIC8vIENvbnNlcnZhdGl2ZSBidXQgcXVpY2sgaW5kZXggdmFsaWRhdGlv
bgotICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUs
IGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCk7CisgICAgYm9vbCB2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQp
OwogCiAgICAgLy8gUHJlY2lzZSBidXQgc2xvdyBpbmRleCB2YWxpZGF0aW9uIC0tIG9ubHkgZG9u
ZSBpZiBjb25zZXJ2YXRpdmUgY2hlY2tzIGZhaWwKLSAgICBib29sIHZhbGlkYXRlSW5kZXhBcnJh
eVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNl
dCwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKTsKKyAgICBib29sIHZhbGlkYXRlSW5kZXhBcnJh
eVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNl
dCwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpOwogICAgIC8vIElmIG51bUVsZW1lbnRz
IDw9IDAsIHdlIG9ubHkgY2hlY2sgaWYgZWFjaCBlbmFibGVkIHZlcnRleCBhdHRyaWJ1dGUgaXMg
Ym91bmQgdG8gYSBidWZmZXIuCi0gICAgYm9vbCB2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKGludCBu
dW1FbGVtZW50cyk7CisgICAgYm9vbCB2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKHVuc2lnbmVkIG51
bUVsZW1lbnRzKTsKIAogICAgIGJvb2wgdmFsaWRhdGVXZWJHTE9iamVjdChjb25zdCBjaGFyKiwg
V2ViR0xPYmplY3QqKTsKIApAQCAtNTA1LDYgKzUwNiw3IEBAIHB1YmxpYzoKICAgICBPd25QdHI8
T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKICAgICBPd25QdHI8T0VTU3RhbmRh
cmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwogICAgIE93blB0cjxPRVNW
ZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdDsKKyAgICBPd25QdHI8T0VT
RWxlbWVudEluZGV4VWludD4gbV9vZXNFbGVtZW50SW5kZXhVaW50OwogICAgIE93blB0cjxXZWJH
TExvc2VDb250ZXh0PiBtX3dlYmdsTG9zZUNvbnRleHQ7CiAgICAgT3duUHRyPFdlYkdMRGVidWdS
ZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbzsKICAgICBPd25QdHI8V2ViR0xE
ZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCmluZGV4IDQ4YjI2Y2UxMjJhOGFjMmNkNzYy
ZDNiNjc5MWZhZjhiZDI5MGJiNWEuLjJmNGMxMmMwMzk5OTliZDg3YTIzYWQ0N2JjZWRmZWIzZWEw
NGMxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVu
c2lvbnMzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lv
bnMzRC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyAgIEdMX09FU19zdGFuZGFy
ZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VTX3JnYjhfcmdiYTgKICAgICAvLyAgIEdMX09F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8gICBHTF9PRVNfZWxlbWVudF9pbmRleF91aW50
CiAgICAgLy8gICBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKICAgICAvLyAgIEdM
X0FSQl90ZXh0dXJlX3JlY3RhbmdsZSAob25seSB0aGUgc3Vic2V0IHJlcXVpcmVkIHRvCiAgICAg
Ly8gICAgIGltcGxlbWVudCBJT1N1cmZhY2UgYmluZGluZzsgaXQncyByZWNvbW1lbmRlZCB0byBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCmluZGV4IGNjY2NkMzhiZjZjOWU4ZDQz
NmEwODFmOTRlMjVlMGQ3NWY5ZTRiNmMuLjI1YjlkYjM4MWM4NDc1ODkwNjNhMGI4MjdkMDYwMGQ2
YWJjOWY3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCkBAIC0xNTUsNiArMTU1LDEw
IEBAIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdMOjpzdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJp
bmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gRGVza3RvcCBHTCBhbHdheXMgc3VwcG9y
dHMgVU5TSUdORURfSU5UIGluZGljZXMKKyAgICBpZiAobmFtZSA9PSAiR0xfT0VTX2VsZW1lbnRf
aW5kZXhfdWludCIpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKG5hbWUgPT0gIkdM
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAgICAgICAgIHJldHVybiBtX2F2YWls
YWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3Bp
YyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYmM4YmM5YzkwN2RmYmI3NjJkMzIzZGJmZmQ5ODRlMjk0YTZiY2Q0Mi4u
NzMxNDg4MWQ0MGNlZTBiMDc3NGU4ZTMzN2I5NDMzM2FmYjIwYTc5OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTEwLTEyICBCcmFuZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBPRVNfZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19l
bGVtZW50X2luZGV4X3VpbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBleHRlbnNpb24gY29uZm9ybWFu
Y2UgdGVzdCBmcm9tIEtIUk9OT1MKKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy1l
bGVtZW50LWluZGV4LXVpbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTExICBKZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dLMl0gV1RSIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9mIHNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNTNiOTg1NDlkOThmZTZlMjVlODQ0NGRkYzFjODNlMGZl
Yzk4ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtZWxlbWVudC1pbmRleC11aW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYyIEBACitUZXN0
cyB0aGF0IGluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBkb2VzIG5vdCBleGFtaW5l
IHRvbyBtYW55IGluZGljZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
V2ViR0wgY29udGV4dCBleGlzdHMKK1BBU1MgU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX2VsZW1l
bnRfaW5kZXhfdWludCBleHRlbnNpb24KK1BBU1MgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBsaXN0
ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkCitUZXN0IHRoYXQgZHJh
d3Mgd2l0aCB1bnNpZ25lZCBpbnRlZ2VyIGluZGljZXMgcHJvZHVjZSB0aGUgZXhwZWN0ZWQgcmVz
dWx0cworUEFTUyBEcmF3IDAgcGFzc2VkIHBpeGVsIHRlc3QKK1Rlc3Rpbmcgd2l0aCB2YWxpZCBp
bmRpY2VzCitQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlz
IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wu
VU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKK1Rlc3Rpbmcgd2l0aCBvdXQtb2YtcmFuZ2UgaW5kaWNlcwor
RW5hYmxlIHZlcnRpY2VzLCB2YWxpZAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVO
U0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCitFbmFibGUgbm9ybWFscywgb3V0LW9mLXJhbmdlCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1l
bnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQ
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAKK1Rl
c3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjdXJyZW50
IHByb2dyYW0KK0VuYWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBudWxsCitQQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1lbnRz
KGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAKK0VuYWJs
ZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIKK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApIGlzIHVuZGVmaW5lZC4K
K1Bhc3MgbGFyZ2UgbmVnYXRpdmUgaW5kZXggdG8gdmVydGV4QXR0cmliUG9pbnRlcgorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKK1BBU1MgZ2wuZHJh
d0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmlu
ZWQuCitUZXN0IHRoYXQgY2xpZW50IGRhdGEgaXMgYWx3YXlzIGNvcGllZCBkdXJpbmcgYnVmZmVy
RGF0YSBhbmQgYnVmZmVyU3ViRGF0YSBjYWxscworUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJ
QU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdM
IGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQ
LCA0LCBnbC5VTlNJR05FRF9JTlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5W
QUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwg
NCwgZ2wuVU5TSUdORURfSU5ULCA4KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFM
SURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQs
IGdsLlVOU0lHTkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05F
RF9JTlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04u
CitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURf
SU5ULCA4KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgor
VGVzdCB0aGF0IHVwZGF0aW5nIHRoZSBzaXplIG9mIGEgdmVydGV4IGJ1ZmZlciBpcyBwcm9wZXJs
eSBub3RpY2VkIGJ5IHRoZSBXZWJHTCBpbXBsZW1lbnRhdGlvbi4KK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIGluaXRpYWxpemF0aW9uCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB2ZXJ0ZXggc2V0dXAK
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIHRleHR1
cmUgY29vcmQgc2V0dXAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IGFmdGVyIHZlcnRleCByZWRlZmluaXRpb24KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIHRleHR1cmUgY29vcmRpbmF0ZSAvIGNvbG9yIHJlZGVm
aW5pdGlvbgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0
ZXIgc2V0dGluZyB1cCBpbmRpY2VzCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBhZnRlciBkcmF3aW5nCitUZXN0IG91dCBvZiByYW5nZSBpbmRpY2VzCitQQVNT
IGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA0
KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgorUEFTUyBnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgMCkgZ2VuZXJhdGVk
IGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuZHJhd0VsZW1l
bnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDgpIGdlbmVyYXRlZCBl
eHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitWZXJpZmllcyB0aGF0IHRoZSBp
bmRleCB2YWxpZGF0aW9uIGNvZGUgd2hpY2ggaXMgd2l0aGluIGJ1ZmZlclN1YkRhdGEgZG9lcyBu
b3QgY3Jhc2guCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxV
RSA6IGFmdGVyIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGEgYnVmZmVyIG91dHNpZGUgb2YgdGhlIGFs
bG9jYXRlZCBib3VuZHMKK1BBU1MgYnVmZmVyU3ViRGF0YSwgd2hlbiBidWZmZXIgb2JqZWN0IHdh
cyBpbml0aWFsaXplZCB3aXRoIG51bGwsIGRpZCBub3QgY3Jhc2gKK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjOTI4NDQ5
MGI0MWRhMDk0NzJiYWFkYzcxNTdiNzQyZTMyOTExMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKQEAg
LTAsMCArMSwzOTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBPRVNfZWxlbWVudF9pbmRleF91aW50IENvbmZv
cm1hbmNlIFRlc3RzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVza3RvcC1nbC1j
b25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHN0eWxlPSJ3
aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+IDwvY2FudmFzPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZnVu
Y3Rpb25hbGl0eSBvZiB0aGUgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBleHRlbnNpb24sIGlmIGl0
IGlzIGF2YWlsYWJsZS4iKTsKKworZGVidWcoIiIpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Cit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwordmFy
IGdsID0gY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Cit2YXIgZXh0ID0gbnVsbDsKK3ZhciB2YW8g
PSBudWxsOworCitpZiAoIWdsKSB7CisgICAgdGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2Vz
IG5vdCBleGlzdCIpOworfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJXZWJHTCBjb250ZXh0IGV4
aXN0cyIpOworCisgICAgLy8gUXVlcnkgdGhlIGV4dGVuc2lvbiBhbmQgc3RvcmUgZ2xvYmFsbHkg
c28gc2hvdWxkQmUgY2FuIGFjY2VzcyBpdAorICAgIGV4dCA9IGdsLmdldEV4dGVuc2lvbigiT0VT
X2VsZW1lbnRfaW5kZXhfdWludCIpOworICAgIGlmICghZXh0KSB7CisgICAgICAgIHRlc3RQYXNz
ZWQoIk5vIE9FU19lbGVtZW50X2luZGV4X3VpbnQgc3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7
CisKKyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdChmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBleHRlbnNpb24iKTsKKworICAgICAgICBydW5TdXBwb3J0ZWRUZXN0KHRydWUpOworICAgICAg
ICBydW5EcmF3VGVzdHMoKTsKKworICAgICAgICAvLyBUaGVzZSB0ZXN0cyBhcmUgdHdlYWtlZCBk
dXBsaWNhdGVzIG9mIHRoZSBidWZmZXJzL2luZGV4LXZhbGlkYXRpb24qIHRlc3RzCisgICAgICAg
IC8vIHVzaW5nIHVuc2lnbmVkIGludCBpbmRpY2VzIHRvIGVuc3VyZSB0aGF0IGJlaGF2aW9yIHJl
bWFpbnMgY29uc2lzdGVudAorICAgICAgICBydW5JbmRleFZhbGlkYXRpb25UZXN0cygpOworICAg
ICAgICBydW5Db3BpZXNJbmRpY2VzVGVzdHMoKTsKKyAgICAgICAgcnVuUmVzaXplZEJ1ZmZlclRl
c3RzKCk7CisgICAgICAgIHJ1blZlcmlmaWVzVG9vTWFueUluZGljZXNUZXN0cygpOworICAgICAg
ICBydW5DcmFzaFdpdGhCdWZmZXJTdWJEYXRhVGVzdHMoKTsKKworICAgICAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAidGhlcmUgc2hvdWxkIGJlIG5vIGVycm9ycyIpOworICAg
IH0KK30KKworZnVuY3Rpb24gcnVuU3VwcG9ydGVkVGVzdChleHRlbnNpb25FbmFibGVkKSB7Cisg
ICAgdmFyIHN1cHBvcnRlZCA9IGdsLmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKTsKKyAgICBpZiAo
c3VwcG9ydGVkLmluZGV4T2YoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSA+PSAwKSB7CisgICAg
ICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPRVNf
ZWxlbWVudF9pbmRleF91aW50IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYW5kIGdldEV4dGVuc2lvbiBz
dWNjZWVkZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9F
U19lbGVtZW50X2luZGV4X3VpbnQgbGlzdGVkIGFzIHN1cHBvcnRlZCBidXQgZ2V0RXh0ZW5zaW9u
IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGV4dGVuc2lv
bkVuYWJsZWQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9FU19lbGVtZW50X2luZGV4X3Vp
bnQgbm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBzdWNjZWVkZWQiKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9FU19lbGVtZW50X2lu
ZGV4X3VpbnQgbm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYW5kIGdldEV4dGVuc2lvbiBmYWlsZWQg
LS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBydW5E
cmF3VGVzdHMoKSB7CisgICAgZGVidWcoIlRlc3QgdGhhdCBkcmF3cyB3aXRoIHVuc2lnbmVkIGlu
dGVnZXIgaW5kaWNlcyBwcm9kdWNlIHRoZSBleHBlY3RlZCByZXN1bHRzIik7CisgICAgCisgICAg
Y2FudmFzLndpZHRoID0gNTA7IGNhbnZhcy5oZWlnaHQgPSA1MDsKKyAgICBnbC52aWV3cG9ydCgw
LCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgIAorICAgIHZhciBwcm9ncmFt
ID0gd3R1LnNldHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtKGdsKTsKKworICAgIGZ1bmN0aW9u
IHNldHVwRHJhdyhzKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIHZlcnRleCBidWZmZXIgdGhhdCBj
YW5ub3QgYmUgZnVsbHkgaW5kZXhlZCB2aWEgc2hvcnRzCisgICAgICAgIHZhciBxdWFkQXJyYXlM
ZW4gPSA2NTUzNyAqIDM7CisgICAgICAgIHZhciBxdWFkQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5
KHF1YWRBcnJheUxlbik7CisgICAgICAgIAorICAgICAgICAvLyBMZWF2ZSBhbGwgYnV0IHRoZSBs
YXN0IDQgdmFsdWVzIHplcm8tZWQgb3V0CisgICAgICAgIHZhciBpZHggPSBxdWFkQXJyYXlMZW4g
LSAxMjsKKworICAgICAgICAvLyBJbml0aWFsaXplZCB0aGUgbGFzdCA0IHZhbHVlcyB0byBhIHF1
YWQKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IDEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJh
eVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOworCisg
ICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAtMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lk
eCsrXSA9IDEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAgICAg
ICAgcXVhZEFycmF5W2lkeCsrXSA9IC0xLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4Kytd
ID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAgICAgICAg
cXVhZEFycmF5W2lkeCsrXSA9IDEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAt
MS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IDAuMDsKKworICAgICAgICB2YXIg
dmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgICAgIGdsLmJpbmRCdWZmZXIo
Z2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgICAgICBnbC5idWZmZXJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgcXVhZEFycmF5LCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgICAgICAgLy8g
Q3JlYXRlIGFuIHVuc2lnbmVkIGludCBpbmRleCBidWZmZXIgdGhhdCBpbmRleGVzIHRoZSBsYXN0
IDQgdmVydGljZXMKKyAgICAgICAgdmFyIGJhc2VJbmRleCA9IChxdWFkQXJyYXlMZW4gLyAzKSAt
IDQ7CisKKyAgICAgICAgdmFyIGluZGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAg
ICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4T2JqZWN0KTsK
KyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFVpbnQz
MkFycmF5KFsKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDAsCisgICAgICAgICAgICBiYXNlSW5k
ZXggKyAxLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMiwKKyAgICAgICAgICAgIGJhc2VJbmRl
eCArIDIsCisgICAgICAgICAgICBiYXNlSW5kZXggKyAzLAorICAgICAgICAgICAgYmFzZUluZGV4
ICsgMF0pLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgICAgICAgdmFyIG9wdF9wb3NpdGlvbkxvY2F0
aW9uID0gMDsKKyAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkob3B0X3Bvc2l0aW9u
TG9jYXRpb24pOworICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworICAgIH07CisgICAgZnVuY3Rpb24g
cmVhZExvY2F0aW9uKHgsIHkpIHsKKyAgICAgICAgdmFyIHBpeGVscyA9IG5ldyBVaW50OEFycmF5
KDEgKiAxICogNCk7CisgICAgICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgMSwgMSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICAgICAgcmV0dXJuIHBpeGVsczsKKyAgICB9
OworICAgIGZ1bmN0aW9uIHRlc3RQaXhlbChibGFja0xpc3QsIHdoaXRlTGlzdCkgeworICAgICAg
ICBmdW5jdGlvbiB0ZXN0TGlzdChsaXN0LCBleHBlY3RlZCkgeworICAgICAgICAgICAgZm9yICh2
YXIgbiA9IDA7IG4gPCBsaXN0Lmxlbmd0aDsgbisrKSB7CisgICAgICAgICAgICAgICAgdmFyIGwg
PSBsaXN0W25dOworICAgICAgICAgICAgICAgIHZhciB4ID0gLU1hdGguZmxvb3IobCAqIGNhbnZh
cy53aWR0aCAvIDIpICsgY2FudmFzLndpZHRoIC8gMjsKKyAgICAgICAgICAgICAgICB2YXIgeSA9
IC1NYXRoLmZsb29yKGwgKiBjYW52YXMuaGVpZ2h0IC8gMikgKyBjYW52YXMuaGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgICAgICB2YXIgc291cmNlID0gcmVhZExvY2F0aW9uKHgsIHkpOworICAgICAg
ICAgICAgICAgIGlmIChNYXRoLmFicyhzb3VyY2VbMF0gLSBleHBlY3RlZCkgPiAyKSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gdGVzdExpc3QoYmxhY2tMaXN0LCAwKSAmJiB0ZXN0TGlzdCh3aGl0ZUxpc3QsIDI1NSk7Cisg
ICAgfTsKKyAgICBmdW5jdGlvbiB2ZXJpZnlEcmF3KGRyYXdOdW1iZXIsIHMpIHsKKyAgICAgICAg
Z2wuY2xlYXJDb2xvcigxLjAsIDEuMCwgMS4wLCAxLjApOworICAgICAgICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgICAgIGdsLmRyYXdF
bGVtZW50cyhnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX0lOVCwgMCk7CisKKyAgICAgICAg
dmFyIGJsYWNrTGlzdCA9IFtdOworICAgICAgICB2YXIgd2hpdGVMaXN0ID0gW107CisgICAgICAg
IHZhciBwb2ludHMgPSBbMC4wLCAwLjIsIDAuNCwgMC42LCAwLjgsIDEuMF07CisgICAgICAgIGZv
ciAodmFyIG4gPSAwOyBuIDwgcG9pbnRzLmxlbmd0aDsgbisrKSB7CisgICAgICAgICAgICBpZiAo
cG9pbnRzW25dIDw9IHMpIHsKKyAgICAgICAgICAgICAgICBibGFja0xpc3QucHVzaChwb2ludHNb
bl0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3aGl0ZUxpc3QucHVz
aChwb2ludHNbbl0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0ZXN0
UGl4ZWwoYmxhY2tMaXN0LCB3aGl0ZUxpc3QpKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJE
cmF3ICIgKyBkcmF3TnVtYmVyICsgIiBwYXNzZWQgcGl4ZWwgdGVzdCIpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiRHJhdyAiICsgZHJhd051bWJlciArICIgZmFp
bGVkIHBpeGVsIHRlc3QiKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBzZXR1cERyYXcoMC41
KTsKKyAgICB2ZXJpZnlEcmF3KDAsIDAuNSk7Cit9CisKK2Z1bmN0aW9uIHJ1bkluZGV4VmFsaWRh
dGlvblRlc3RzKCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGluZGV4IHZhbGlkYXRp
b24gdmVyaWZpZXMgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMiKTsKKworICAgIGZ1bmN0
aW9uIHNpemVJbkJ5dGVzKHR5cGUpIHsKKyAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgY2Fz
ZSBnbC5CWVRFOgorICAgICAgY2FzZSBnbC5VTlNJR05FRF9CWVRFOgorICAgICAgICByZXR1cm4g
MTsKKyAgICAgIGNhc2UgZ2wuU0hPUlQ6CisgICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUOgor
ICAgICAgICByZXR1cm4gMjsKKyAgICAgIGNhc2UgZ2wuSU5UOgorICAgICAgY2FzZSBnbC5VTlNJ
R05FRF9JTlQ6CisgICAgICBjYXNlIGdsLkZMT0FUOgorICAgICAgICByZXR1cm4gNDsKKyAgICAg
IGRlZmF1bHQ6CisgICAgICAgIHRocm93ICJ1bmtub3duIHR5cGUiOworICAgICAgfQorICAgIH0K
KworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICAvLyAz
IHZlcnRpY2VzID0+IDEgdHJpYW5nbGUsIGludGVybGVhdmVkIGRhdGEKKyAgICB2YXIgZGF0YUNv
bXBsZXRlID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwgMSwgMSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCwgMCwgMV0pOworICAgIHZhciBkYXRhSW5jb21wbGV0ZSA9IG5ldyBGbG9hdDMyQXJy
YXkoWzAsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LCAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
IDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMSwg
MSwgMV0pOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFswLCAxLCAyXSk7CisK
KyAgICBkZWJ1ZygiVGVzdGluZyB3aXRoIHZhbGlkIGluZGljZXMiKTsKKworICAgIHZhciBidWZm
ZXJDb21wbGV0ZSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJS
QVlfQlVGRkVSLCBidWZmZXJDb21wbGV0ZSk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIGRhdGFDb21wbGV0ZSwgZ2wuU1RBVElDX0RSQVcpOworICAgIHZhciBlbGVtZW50cyA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIGVsZW1lbnRzKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCBpbmRpY2VzLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFt
KTsKKyAgICB2YXIgdmVydGV4TG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgImFf
dmVydGV4Iik7CisgICAgdmFyIG5vcm1hbExvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dy
YW0sICJhX25vcm1hbCIpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodmVydGV4TG9jLCA0
LCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDApOworICAgIGds
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZlcnRleExvYyk7CisgICAgZ2wudmVydGV4QXR0cmli
UG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVzKGds
LkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CisgICAgZ2wuZW5hYmxlVmVydGV4
QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUiknLCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKKyAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScp
OworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworCisgICAgZGVidWcoIlRl
c3Rpbmcgd2l0aCBvdXQtb2YtcmFuZ2UgaW5kaWNlcyIpOworCisgICAgdmFyIGJ1ZmZlckluY29t
cGxldGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JV
RkZFUiwgYnVmZmVySW5jb21wbGV0ZSk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIGRhdGFJbmNvbXBsZXRlLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wudmVydGV4QXR0cmli
UG9pbnRlcih2ZXJ0ZXhMb2MsIDQsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVzKGds
LkZMT0FUKSwgMCk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodmVydGV4TG9jKTsK
KyAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAgICBkZWJ1Zygi
RW5hYmxlIHZlcnRpY2VzLCB2YWxpZCIpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CisgICAgZGVidWcoIkVuYWJsZSBub3JtYWxzLCBvdXQtb2YtcmFuZ2UiKTsK
KyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG5vcm1hbExvYywgMywgZ2wuRkxPQVQsIGZhbHNl
LCA3ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCA0ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKTsK
KyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShub3JtYWxMb2MpOworICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3
RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7CisKKyAgICBkZWJ1ZygiVGVz
dCB3aXRoIGVuYWJsZWQgYXR0cmlidXRlIHRoYXQgZG9lcyBub3QgYmVsb25nIHRvIGN1cnJlbnQg
cHJvZ3JhbSIpOworCisgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7
CisgICAgdmFyIGV4dHJhTG9jID0gTWF0aC5tYXgodmVydGV4TG9jLCBub3JtYWxMb2MpICsgMTsK
KyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShleHRyYUxvYyk7CisgICAgZGVidWcoIkVu
YWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBudWxsIik7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50
cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCknKTsKKyAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICBkZWJ1ZygiRW5hYmxlIGFuIGV4
dHJhIGF0dHJpYnV0ZSB3aXRoIGluc3VmZmljaWVudCBkYXRhIGJ1ZmZlciIpOworICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIoZXh0cmFMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNpemVJ
bkJ5dGVzKGdsLkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CisgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRy
YXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCknKTsKKyAgICBk
ZWJ1ZygiUGFzcyBsYXJnZSBuZWdhdGl2ZSBpbmRleCB0byB2ZXJ0ZXhBdHRyaWJQb2ludGVyIik7
CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZMT0FULCBmYWxz
ZSwgNyAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgLTIwMDAwMDAwMDAgKiBzaXplSW5CeXRlcyhn
bC5GTE9BVCkpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Cisg
ICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGds
LlVOU0lHTkVEX0lOVCwgMCknKTsKK30KKworZnVuY3Rpb24gcnVuQ29waWVzSW5kaWNlc1Rlc3Rz
KCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgY2xpZW50IGRhdGEgaXMgYWx3YXlzIGNvcGllZCBk
dXJpbmcgYnVmZmVyRGF0YSBhbmQgYnVmZmVyU3ViRGF0YSBjYWxscyIpOworCisgICAgdmFyIHBy
b2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKworICAgIGdsLnVzZVByb2dyYW0ocHJv
Z3JhbSk7CisgICAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGds
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlf
QlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgIC8vIDQgdmVydGljZXMgLT4gMiB0cmlhbmdsZXMK
KyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAs
MCwwLCAwLDEsMCwgMSwwLDAsIDEsMSwwIF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworCisgICAgdmFy
IGluZGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisKKyAgICBnbC5iaW5kQnVmZmVyKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgdmFyIGluZGljZXMgPSBu
ZXcgVWludDMyQXJyYXkoWyAxMDAwMCwgMCwgMSwgMiwgMywgMTAwMDAgXSk7CisgICAgZ2wuYnVm
ZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcp
OworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkiKTsKKyAgICBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wuZHJhd0Vs
ZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDApIik7CisgICAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdF
bGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSIpOworICAg
IGluZGljZXNbMF0gPSAyOworICAgIGluZGljZXNbNV0gPSAxOworICAgIHNob3VsZEdlbmVyYXRl
R0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RS
SVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkiKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NU
UklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDApIik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9T
VFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSIpOworfQorCitmdW5jdGlvbiBydW5SZXNpemVk
QnVmZmVyVGVzdHMoKSB7CisgICAgZGVidWcoIlRlc3QgdGhhdCB1cGRhdGluZyB0aGUgc2l6ZSBv
ZiBhIHZlcnRleCBidWZmZXIgaXMgcHJvcGVybHkgbm90aWNlZCBieSB0aGUgV2ViR0wgaW1wbGVt
ZW50YXRpb24uIik7CisKKyAgICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbShnbCwgInZzIiwg
ImZzIiwgWyJ2UG9zaXRpb24iLCAidkNvbG9yIl0pOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJhZnRlciBpbml0aWFsaXphdGlvbiIpOworCisgICAgdmFyIHZlcnRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBu
ZXcgRmxvYXQzMkFycmF5KAorICAgICAgICBbLTEsMSwwLCAxLDEsMCwgLTEsLTEsMCwKKyAgICAg
ICAgIC0xLC0xLDAsIDEsMSwwLCAxLC0xLDBdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwg
MywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAiYWZ0ZXIgdmVydGV4IHNldHVwIik7CisKKyAgICB2YXIgdGV4Q29vcmRPYmplY3Qg
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dGV4Q29vcmRPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcg
RmxvYXQzMkFycmF5KAorICAgICAgICBbMCwwLCAxLDAsIDAsMSwKKyAgICAgICAgIDAsMSwgMSww
LCAxLDFdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5
KDEpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAw
LCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdGV4dHVy
ZSBjb29yZCBzZXR1cCIpOworCisgICAgLy8gTm93IHJlc2l6ZSB0aGVzZSBidWZmZXJzIGJlY2F1
c2Ugd2Ugd2FudCB0byBjaGFuZ2Ugd2hhdCB3ZSdyZSBkcmF3aW5nLgorICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
QVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgICAgLTEsMSwwLCAxLDEsMCwg
LTEsLTEsMCwgMSwtMSwwLAorICAgICAgICAtMSwxLDAsIDEsMSwwLCAtMSwtMSwwLCAxLC0xLDBd
KSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJhZnRlciB2ZXJ0ZXggcmVkZWZpbml0aW9uIik7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIHRleENvb3JkT2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgbmV3IFVpbnQ4QXJyYXkoWworICAgICAgICAyNTUsIDAsIDAsIDI1NSwKKyAgICAgICAg
MjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDI1NSwgMCwgMCwgMjU1LAorICAgICAgICAyNTUsIDAs
IDAsIDI1NSwKKyAgICAgICAgMCwgMjU1LCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1
LAorICAgICAgICAwLCAyNTUsIDAsIDI1NSwKKyAgICAgICAgMCwgMjU1LCAwLCAyNTVdKSwgZ2wu
U1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuVU5TSUdO
RURfQllURSwgZmFsc2UsIDAsIDApOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsICJhZnRlciB0ZXh0dXJlIGNvb3JkaW5hdGUgLyBjb2xvciByZWRlZmluaXRpb24iKTsKKwor
ICAgIHZhciBudW1RdWFkcyA9IDI7CisgICAgdmFyIGluZGljZXMgPSBuZXcgVWludDMyQXJyYXko
bnVtUXVhZHMgKiA2KTsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbnVtUXVhZHM7ICsraWkp
IHsKKyAgICAgICAgdmFyIG9mZnNldCA9IGlpICogNjsKKyAgICAgICAgdmFyIHF1YWQgPSAoaWkg
PT0gKG51bVF1YWRzIC0gMSkpID8gNCA6IDA7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgMF0g
PSBxdWFkICsgMDsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyAxXSA9IHF1YWQgKyAxOworICAg
ICAgICBpbmRpY2VzW29mZnNldCArIDJdID0gcXVhZCArIDI7CisgICAgICAgIGluZGljZXNbb2Zm
c2V0ICsgM10gPSBxdWFkICsgMjsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyA0XSA9IHF1YWQg
KyAxOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDVdID0gcXVhZCArIDM7CisgICAgfQorICAg
IHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRh
KGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzLCBnbC5TVEFUSUNfRFJBVyk7CisgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHNldHRpbmcgdXAgaW5kaWNl
cyIpOworICAgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIG51bVF1YWRzICogNiwgZ2wu
VU5TSUdORURfSU5ULCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
YWZ0ZXIgZHJhd2luZyIpOworfQorCitmdW5jdGlvbiBydW5WZXJpZmllc1Rvb01hbnlJbmRpY2Vz
VGVzdHMoKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaW5kZXggdmFsaWRhdGlvbiBm
b3IgZHJhd0VsZW1lbnRzIGRvZXMgbm90IGV4YW1pbmUgdG9vIG1hbnkgaW5kaWNlcyIpOworCisg
ICAgdmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKworICAgIGdsLnVzZVBy
b2dyYW0ocHJvZ3JhbSk7CisgICAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICAgIGdsLmRpc2FibGVWZXJ0
ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVy
dGV4T2JqZWN0KTsKKyAgICAvLyA0IHZlcnRpY2VzIC0+IDIgdHJpYW5nbGVzCisgICAgZ2wuYnVm
ZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAsMCwgMCwxLDAs
IDEsMCwwLCAxLDEsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworICAgIHZhciBpbmRleE9iamVj
dCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworCisgICAgZGVidWcoIlRlc3Qgb3V0IG9mIHJhbmdlIGlu
ZGljZXMiKQorICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4
T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBuZXcg
VWludDMyQXJyYXkoWyAxMDAwMCwgMCwgMSwgMiwgMywgMTAwMDAgXSksIGdsLlNUQVRJQ19EUkFX
KTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0Vs
ZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdF
bGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOworICAg
IHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3
RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKK30K
KworZnVuY3Rpb24gcnVuQ3Jhc2hXaXRoQnVmZmVyU3ViRGF0YVRlc3RzKCkgeworICAgIGRlYnVn
KCdWZXJpZmllcyB0aGF0IHRoZSBpbmRleCB2YWxpZGF0aW9uIGNvZGUgd2hpY2ggaXMgd2l0aGlu
IGJ1ZmZlclN1YkRhdGEgZG9lcyBub3QgY3Jhc2guJykKKworICAgIHZhciBlbGVtZW50QnVmZmVy
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZ
X0JVRkZFUiwgZWxlbWVudEJ1ZmZlcik7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FS
UkFZX0JVRkZFUiwgMjU2LCBnbC5TVEFUSUNfRFJBVyk7CisgICAgdmFyIGRhdGEgPSBuZXcgVWlu
dDMyQXJyYXkoMTI3KTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCA2NCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LCAiYWZ0ZXIgYXR0ZW1wdGluZyB0byB1cGRhdGUgYSBidWZmZXIgb3V0c2lkZSBvZiB0aGUgYWxs
b2NhdGVkIGJvdW5kcyIpOworICAgIHRlc3RQYXNzZWQoImJ1ZmZlclN1YkRhdGEsIHdoZW4gYnVm
ZmVyIG9iamVjdCB3YXMgaW5pdGlhbGl6ZWQgd2l0aCBudWxsLCBkaWQgbm90IGNyYXNoIik7Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA5OWQ4ZDY1OTQ5YjU1MGRkNjIxN2I5MGQ1Nzg4MzY0MTBl
Yzg1N2QwLi4wNDEwNDkxMGE2ODg3YzQwNTg0ZTNmMjVlNzgwNjdjZjVmMjQ0MjFjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzcxLDYgKzM3MSw5IEBA
IGZhc3QvY3NzL2RyYWdnYWJsZS1yZWdpb24tcGFyc2VyLmh0bWwKICMgaHR0cDovL3dlYmtpdC5v
cmcvYi85NjgyOAogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRt
bAogCisjIEV4cGVjdGVkIHRvIGZhaWwgdW50aWwgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBleHRl
bnNpb24gaXMgaW1wbGVtZW50ZWQKK3dlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZhcy93ZWJn
bC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBURVNUUyBFWFBFQ1RFRCBUTyBGQUlMCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA4ZDJiZmQ5N2Y2ZjhiNTNkZmU4ZGE2OWQ5MDk5ZmU3MjViZDFh
MGRmLi4wYzY2MTJmZGEwN2FkNGJmNjMzYmViZjM1NzA2ZmE3YWEzZmIxNjg3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA5LDYgKzIwOSw3IEBAIGZh
c3QvY2FudmFzL3dlYmdsL3ZpZXdwb3J0LXVuY2hhbmdlZC11cG9uLXJlc2l6ZS5odG1sCiBmYXN0
L2NhbnZhcy93ZWJnbC93ZWJnbC1hcnJheS1pbnZhbGlkLXJhbmdlcy5odG1sCiBmYXN0L2NhbnZh
cy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5odG1sCiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4
LWFycmF5LW9iamVjdC5odG1sCitmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11
aW50Lmh0bWwKIGZhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKIGZhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbAogZmFzdC9sb2Fk
ZXIvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdlLWxvYWQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168508</attachid>
            <date>2012-10-12 16:24:57 -0700</date>
            <delta_ts>2012-10-15 11:07:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97400-20121012162357.patch</filename>
            <type>text/plain</type>
            <size>60255</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRhYjdhZjM3Y2Q4ZDkz
MTU2M2VjNzY5YjM4MjA3OTcwNzU1MDdjZS4uODBiNzlmMWYwZmZiYzZmZTAyY2I4NWY3Y2E1YTFi
MjI4MjU1M2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTEyICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xMiAgTGV2aSBXZWlu
dHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IG1vZGUgaWRlbnRpZmllcnMgYWRkZWQgaW4gcjEzMTExMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBlODYxZDgwNzQ4Y2U1OTU2NGZiMjZjNjYwYjFlMDk1NzJkZDJmMDhkLi5hZDIxYjgxZDFlMmUy
MGE4NDU1YjM5YjIxZDE1MmE2OTg3OTUxZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTIw
LDYgKzUyMCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmlk
bAogICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbAorICAgIGh0bWwvY2Fu
dmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXku
aWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwKQEAgLTE0NzksNiArMTQ4MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAgIGh0bWwvY2FudmFz
L09FU1RleHR1cmVGbG9hdC5jcHAKICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAKKyAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgIGh0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CkBAIC0yNTMxLDYgKzI1MzMsNyBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNU
ZXh0dXJlRmxvYXQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0
LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuY3BwCkBAIC0yNTU4LDEyICsyNTYxLDE0IEBAIElGIChFTkFCTEVfV0VCR0wp
CiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VT
VmVydGV4QXJyYXlPYmplY3QuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwCiAgICAgKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
ICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKICAgICAgICAgaHRtbC9jYW52
YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAogICAgICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0YzE5OWM0
NjZhMDJhYjAyY2NhN2Q1ODczYzE3OTNjNDExNzY3OWRhLi42ODVjZjYyYTUyZGRjOTA5YWI1OWNh
YjQ4YmQ4ZDAzN2ZiYmYzNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3
Nyw2ICszNzcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9JbnQxNkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQzMkFycmF5
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQppbmRleCA4NGM5ZDA3NzcxZWQxYTE3NDU2NjcyZTI3MWUzMzFiY2E0ZTY4NThlLi43
ZjQ2ODI3ZmVlZjc3ZTFhOTVjNzNkOTY5YjNkMmVlYzg3NTgyZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCkBAIC0zMDEsNiArMzAxLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAk
JFBXRC9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJCRQV0Qv
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKICAgICAkJFBX
RC9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjBlYjc3ZTkzZmRjZDFjMDA5OGQ4ZjY1NGRlZGFmNTA5
MmFkNzc1NS4uN2IxZmM1MWNjZjg4MGM4YjZkZTkxZDI1YWU1MGVmNDFjOGEwZGJmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NzksNiArNTc5LDggQEAgd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWludC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhVaW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNPc2NpbGxhdG9yLmNwcCBcCkBAIC0xNTEyLDYgKzE1MTQsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVG
bG9hdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
aWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwgXApAQCAtMzE4NCw2ICszMTg3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCBcCisJU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDhmYWViODBjNGNhNzYxNGU0MjY2MzcwNDZhMWIwOTA5
MDZiMjRlNmUuLjMwNGM3NTBhNmYyYzM0YmQ4NzgwNjFiZWE2ZTU0YmJiN2U1Y2M0NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMzg5MSw2ICszODkxLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBo
dG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmggXAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmggXAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTLmggXApAQCAtMzkyNCw2ICszOTI1LDcgQEAgZW5hYmxlPyhXRUJHTCkg
ewogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAg
XAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDIxNGFjMjdlODMwOWZjZDZiYTcxYjAyZDYyNDNmZmViMjg0Y2Q5OTYuLjJiYWRmOTBm
NWE1NGU3YmQ2N2IxNjJiNWJlMjEzN2I0NTg3MTM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEx
NTgsNiArMTE1OCw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCcs
CisgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvVWludDMyQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50
OEFycmF5LmlkbCcsCkBAIC00MzA1LDYgKzQzMDYsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNWZXJ0
ZXhBcnJheU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFy
cmF5T2JqZWN0LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmgn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmgnLApAQCAtNzc4Miw2ICs3Nzg1LDggQEAKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0Lmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
RVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudElu
ZGV4VWludC5jcHAnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhVaW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmNwcCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93
RXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZGI2MzFjODkzODNkZjk1Nzll
ZTQ3OTVhNjExZTczMGUzNzFkOGFlLi5mNjc5YjBlMThlZmUzY2EyMWEwN2YyODc4OWJiMWJmMjg5
ZmY2M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xOTk2LDYgKzE5OTYsMTAgQEAKIAkJN0UxMkU5MTAxNUZBNUQzQTAwNUU0
MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8qIEN1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwICovOyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBC
RThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3
RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBC
MjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07CisJCTdFNDZGNkZBMTYyN0Ey
Q0EwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8q
IEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi87IH07CisJCTdFNDZGNkZCMTYyN0EyQ0EwMDA2
MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKKwkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9F
U0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVp
bnQuY3BwICovOyB9OworCQk3RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudElu
ZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsK
IAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5
QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAq
LzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4
NDVGMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRDMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLzsgfTsKQEAgLTkyMjksNiArOTIzMywxMCBAQAog
CQk3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJNZXNo
R2VuZXJhdG9yLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYx
NyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1
cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0UzN0VGMkQxMzM5
MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHBhdGggPSBjZi9T
dWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0
NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMg
LyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNFbGVtZW50SW5kZXhVaW50LmNw
cDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTRWxlbWVudEluZGV4
VWludC5oOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5k
aWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxs
b3dlZEluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ0QzEy
RDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNGLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1MTI5LDYgKzE1MTM3LDggQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAw
MTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQu
Y3BwICovLAorCQkJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlk
bCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3Lmlk
bCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwICovLApAQCAtMTg0NzgsNiArMTg0ODgsOCBAQAogCQkJCUU0NDYxNDExMENENjgy
NjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCAqLywKIAkJCQkxMDU5NDU3NTE1QjQyQTBEMDA0
RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwICovLAogCQkJCTEwNTk0NTc5MTVCNDJB
NDMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oICovLAorCQkJCTdFNDZGNkY4MTYy
N0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovLAorCQkJCTdFNDZG
NkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLywKIAkJCQk5
MDAxNzg3RTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAq
LywKIAkJCQk5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRp
dmVzLmggKi8sCiAJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZs
b2F0LmNwcCAqLywKQEAgLTI1NTk4LDYgKzI1NjEwLDggQEAKIAkJCQk1MTRCQzg0MzE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MjhCRDlF
MTYyNTM2OTYwMEM0MEI1NiAvKiBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ2llcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM5MUE5OTExNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyog
T0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U0NkY2RkIxNjI3QTJD
QTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
ODcwMiw2ICsyODcxNiw4IEBACiAJCQkJMzE5NTVBODYxNjBEMTk5MDAwODU4MDI1IC8qIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJDODNGMTYxQ0Yw
NEEwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJD
ODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3RTVEN0E3NjE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3RTQ2RjZGQTE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmlu
ZGV4IGY0YWY1NWQ4MjZiNmVhZmNlZmYyNTQyMGMwMGIxYzdhN2Y0NjJiMGUuLmM5M2YzNDAxZTcw
MWZiNzQ2NjExMTQ1OWVkNDMzOGM5YzUxNzc5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0ltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgorI2luY2x1ZGUg
IkpTT0VTRWxlbWVudEluZGV4VWludC5oIgogI2luY2x1ZGUgIkpTT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiSlNPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5oIgpAQCAtNTcsNiArNTgsNyBAQAogI2luY2x1ZGUgIkpTV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50
LmgiCiAjaW5jbHVkZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1Rl
eHR1cmVGbG9hdC5oIgogI2luY2x1ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC0yMDAs
NiArMjAyLDggQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW4KICAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
OldlYkdMRGVidWdTaGFkZXJzTmFtZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCmluZGV4IDA2MzU0OTY5ZDQ0ZDNjNDZhNTkzZGRhNTU0YTM1ZDJmMTA4Njk2NmQuLjQxNTY4
MzJkMmRjODRhNzI0NmJlNmQyNzU2NTU1NWUyMGQ0ZWZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlY4SW50MTZB
cnJheS5oIgogI2luY2x1ZGUgIlY4SW50MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SW50OEFycmF5
LmgiCisjaW5jbHVkZSAiVjhPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiVjhPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiVjhPRVNUZXh0dXJlRmxvYXQuaCIKICNp
bmNsdWRlICJWOE9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC0xOTEsNiArMTkyLDEwIEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0
LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVj
dE5hbWUiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVt
ZW50SW5kZXhVaW50TmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNf
Y2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNv
bGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzRWxlbWVudEluZGV4VWludE5hbWUi
OworICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2Fz
dDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNv
bGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05h
bWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhV
aW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mOWRmMGJjMTVjMzkxNjE3Y2Q5MGI3ZjI0ZDc1ODQxY2UxMjIx
OTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxl
bWVudEluZGV4VWludC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVp
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitPRVNFbGVtZW50SW5kZXhVaW50OjpPRVNF
bGVtZW50SW5kZXhVaW50KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdl
YkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK09FU0VsZW1lbnRJbmRleFVpbnQ6On5PRVNF
bGVtZW50SW5kZXhVaW50KCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUg
T0VTRWxlbWVudEluZGV4VWludDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE9FU0Vs
ZW1lbnRJbmRleFVpbnROYW1lOworfQorCitQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+
IE9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNFbGVtZW50SW5kZXhVaW50KGNvbnRl
eHQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWlu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMyZDQyODczYTIwNTRkMDU4ODNhNzM5MzgxMTY4M2Y5MThlZWViYzQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgT0VTRWxlbWVudElu
ZGV4VWludF9oCisjZGVmaW5lIE9FU0VsZW1lbnRJbmRleFVpbnRfaAorCisjaW5jbHVkZSAiV2Vi
R0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE9FU0VsZW1lbnRJbmRleFVpbnQgOiBwdWJsaWMgV2ViR0xFeHRl
bnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVp
bnQ+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwgfk9FU0Vs
ZW1lbnRJbmRleFVpbnQoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIE9FU0VsZW1lbnRJbmRleFVpbnQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBPRVNF
bGVtZW50SW5kZXhVaW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
RWxlbWVudEluZGV4VWludC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1NjQwMTUzZmI0ZjY1MWIyMjA2NTNk
MjhjNTMzYWNlZWFkOTgxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAgICAgT21p
dENvbnN0cnVjdG9yCisgICAgXSBPRVNFbGVtZW50SW5kZXhVaW50IHsKKyAgICB9OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKaW5kZXggNjk2OGEwMmI0
Yjk5YWJhODdhNGNkMjE1ODIwMzY1ODk2ZjNjODEyMy4uZmZlYzYxNmNhYmY4MTBkNmNlMDI2NjUx
Nzg3N2EyYjdmNjU1MWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4
dGVuc2lvbi5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xEZWJ1Z1No
YWRlcnNOYW1lLAogICAgICAgICBXZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWUs
IC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbAogICAgICAgICBX
ZWJLaXRXZWJHTERlcHRoVGV4dHVyZU5hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVu
c2lvbiBpcyBvZmZpY2lhbAorICAgICAgICBPRVNFbGVtZW50SW5kZXhVaW50TmFtZSwKICAgICB9
OwogCiAgICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+cmVmKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDU4
MmVkNWQzOThhYzNmMjQ3ZWI2YWFlYjZlZWRhODVlMjk0ZTVjODQuLjBlMWY0YWJiZTNiMDFhOTA1
Yzc1MWEzMzkxZmZlNDM1ZjRjNjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRl
ICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0Lmgi
CiAjaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTE2OTAsNyArMTY5MSwxOCBA
QCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKEdD
M0RzaXplaSBjb3VudCwgR0MzRGVudW0gdAogICAgIGlmIChvZmZzZXQgPCAwKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfU0hPUlQpIHsKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
SU5UKSB7CisgICAgICAgIC8vIEZvciBhbiB1bnNpZ25lZCBpbnQgYXJyYXksIG9mZnNldCBtdXN0
IGJlIGRpdmlzaWJsZSBieSA0IGZvciBhbGlnbm1lbnQgcmVhc29ucy4KKyAgICAgICAgaWYgKG9m
ZnNldCAlIDQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gTWFrZSB1
b2Zmc2V0IGFuIGVsZW1lbnQgb2Zmc2V0LgorICAgICAgICBvZmZzZXQgLz0gNDsKKworICAgICAg
ICBHQzNEc2l6ZWlwdHIgbiA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC8gNDsK
KyAgICAgICAgaWYgKG9mZnNldCA+IG4gfHwgY291bnQgPiBuIC0gb2Zmc2V0KQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfU0hPUlQpIHsKICAgICAgICAgLy8gRm9yIGFuIHVuc2lnbmVkIHNob3J0IGFy
cmF5LCBvZmZzZXQgbXVzdCBiZSBkaXZpc2libGUgYnkgMiBmb3IgYWxpZ25tZW50IHJlYXNvbnMu
CiAgICAgICAgIGlmIChvZmZzZXQgJSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTcwOSw3ICsxNzIxLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRWxl
bWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHQKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNv
bnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCitib29s
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdD
M0RlbnVtIHR5cGUsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAgIC8vIFBl
cmZvcm1zIGNvbnNlcnZhdGl2ZSB2YWxpZGF0aW9uIGJ5IGNhY2hpbmcgYSBtYXhpbXVtIGluZGV4
IG9mCiAgICAgLy8gdGhlIGdpdmVuIHR5cGUgcGVyIGVsZW1lbnQgYXJyYXkgYnVmZmVyLiBJZiBh
bGwgb2YgdGhlIGJvdW5kCkBAIC0xNzQ2LDYgKzE3NTgsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBp
bnQmIG4KICAgICAgICAgICAgICAgICBtYXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nh
c3Q8aW50PihwW2ldKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9JTlQ6IHsKKyAgICAgICAgICAgIGlmICgh
bV9vZXNFbGVtZW50SW5kZXhVaW50KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIG51bUVsZW1lbnRzIC89IHNpemVvZihHQzNEdWludCk7CisgICAgICAgICAgICBj
b25zdCBHQzNEdWludCogcCA9IHN0YXRpY19jYXN0PGNvbnN0IEdDM0R1aW50Kj4oYnVmZmVyLT5k
YXRhKCkpOworICAgICAgICAgICAgZm9yIChHQzNEc2l6ZWlwdHIgaSA9IDA7IGkgPCBudW1FbGVt
ZW50czsgaSsrKQorICAgICAgICAgICAgICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBzdGF0
aWNfY2FzdDxpbnQ+KHBbaV0pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE3
NjIsMTAgKzE3ODMsMTAgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5k
ZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG4KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQ
cmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2
YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwg
R0MzRGludHB0ciBvZmZzZXQsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAg
IEFTU0VSVChjb3VudCA+PSAwICYmIG9mZnNldCA+PSAwKTsKLSAgICBpbnQgbGFzdEluZGV4ID0g
LTE7CisgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gMDsKICAgICAKICAgICBSZWZQdHI8V2ViR0xC
dWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0
RWxlbWVudEFycmF5QnVmZmVyKCk7CiAKQEAgLTE3ODMsNyArMTgwNCwxNiBAQCBib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291
bnQsIEdDM0RlbnVtCiAgICAgdW5zaWduZWQgbG9uZyB1b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHVu
c2lnbmVkIGxvbmcgbiA9IGNvdW50OwogCi0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OlVOU0lHTkVEX1NIT1JUKSB7CisgICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX0lOVCkgeworICAgICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZz
ZXQuCisgICAgICAgIHVvZmZzZXQgLz0gc2l6ZW9mKEdDM0R1aW50KTsKKyAgICAgICAgY29uc3Qg
R0MzRHVpbnQqIHAgPSBzdGF0aWNfY2FzdDxjb25zdCBHQzNEdWludCo+KGVsZW1lbnRBcnJheUJ1
ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCktPmRhdGEoKSkgKyB1b2Zmc2V0OworICAgICAgICB3
aGlsZSAobi0tID4gMCkgeworICAgICAgICAgICAgaWYgKCpwID4gbGFzdEluZGV4KQorICAgICAg
ICAgICAgICAgIGxhc3RJbmRleCA9ICpwOworICAgICAgICAgICAgKytwOworICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkg
ewogICAgICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZzZXQuCiAgICAgICAgIHVv
ZmZzZXQgLz0gc2l6ZW9mKEdDM0R1c2hvcnQpOwogICAgICAgICBjb25zdCBHQzNEdXNob3J0KiBw
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgR0MzRHVzaG9ydCo+KGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxl
bWVudEFycmF5QnVmZmVyKCktPmRhdGEoKSkgKyB1b2Zmc2V0OwpAQCAtMTgwNiw3ICsxODM2LDcg
QEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2Uo
R0MzRHNpemVpIGNvdW50LCBHQzNEZW51bQogICAgIHJldHVybiBudW1FbGVtZW50c1JlcXVpcmVk
ID4gMDsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5n
U3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVSZW5kZXJpbmdTdGF0ZSh1bnNpZ25lZCBudW1FbGVtZW50c1JlcXVpcmVkKQog
ewogICAgIGlmICghbV9jdXJyZW50UHJvZ3JhbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTgyMyw3ICsxODUzLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVu
ZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgLy8gTG9vayBpbiBlYWNoIGNvbnN1bWVkIHZlcnRleCBhdHRyaWIgKGJ5IHRoZSBj
dXJyZW50IHByb2dyYW0pIGFuZCBmaW5kIHRoZSBzbWFsbGVzdCBidWZmZXIgc2l6ZQotICAgIGlu
dCBzbWFsbGVzdE51bUVsZW1lbnRzID0gSU5UX01BWDsKKyAgICB1bnNpZ25lZCBzbWFsbGVzdE51
bUVsZW1lbnRzID0gVUlOVF9NQVg7CiAgICAgaW50IG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyA9
IG1fY3VycmVudFByb2dyYW0tPm51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbnVtQWN0aXZlQXR0cmliTG9jYXRpb25zOyArK2kpIHsKICAgICAgICAg
aW50IGxvYyA9IG1fY3VycmVudFByb2dyYW0tPmdldEFjdGl2ZUF0dHJpYkxvY2F0aW9uKGkpOwpA
QCAtMTgzNCw3ICsxODY0LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgICAgICAgICAg
Ly8gRm9yIHRoZSBsYXN0IGVsZW1lbnQsIHdlIHdpbGwgb25seSB0b3VjaCB0aGUgZGF0YSBmb3Ig
dGhlCiAgICAgICAgICAgICAgICAgLy8gZWxlbWVudCBhbmQgbm90aGluZyBiZXlvbmQgaXQuCiAg
ICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVtYWluaW5nID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0
ZS5idWZmZXJCaW5kaW5nLT5ieXRlTGVuZ3RoKCkgLSBzdGF0ZS5vZmZzZXQpOwotICAgICAgICAg
ICAgICAgIGludCBudW1FbGVtZW50cyA9IDA7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVt
RWxlbWVudHMgPSAwOwogICAgICAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5zdHJpZGUgPiAwKTsK
ICAgICAgICAgICAgICAgICBpZiAoYnl0ZXNSZW1haW5pbmcgPj0gc3RhdGUuYnl0ZXNQZXJFbGVt
ZW50KQogICAgICAgICAgICAgICAgICAgICBudW1FbGVtZW50cyA9IDEgKyAoYnl0ZXNSZW1haW5p
bmcgLSBzdGF0ZS5ieXRlc1BlckVsZW1lbnQpIC8gc3RhdGUuc3RyaWRlOwpAQCAtMTkzNCw2ICsx
OTY0LDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMoR0MzRGVu
dW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5TSUdORURfQllURToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05F
RF9TSE9SVDoKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5T
SUdORURfSU5UOgorICAgICAgICBpZiAobV9vZXNFbGVtZW50SW5kZXhVaW50KQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJkcmF3RWxlbWVudHMiLCAiaW52YWxpZCB0eXBlIik7CisgICAgICAgIHJl
dHVybjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZHJhd0VsZW1lbnRzIiwgImludmFsaWQgdHlwZSIpOwog
ICAgICAgICByZXR1cm47CkBAIC0xOTU0LDcgKzE5ODksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0Mz
RGVudQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG51bUVsZW1lbnRzID0gMDsK
KyAgICB1bnNpZ25lZCBudW1FbGVtZW50cyA9IDA7CiAgICAgaWYgKCFpc0Vycm9yR2VuZXJhdGVk
T25PdXRPZkJvdW5kc0FjY2Vzc2VzKCkpIHsKICAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgYSB2
YWxpZCByZW5kZXJpbmcgc3RhdGUKICAgICAgICAgaWYgKCF2YWxpZGF0ZUVsZW1lbnRBcnJheVNp
emUoY291bnQsIHR5cGUsIHN0YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCkpKSB7CkBAIC0y
MzE1LDYgKzIzNTAsMTQgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsICJPRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91
aW50IikpIHsKKyAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKKyAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxl
bWVudF9pbmRleF91aW50Iik7CisgICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBP
RVNFbGVtZW50SW5kZXhVaW50OjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG1fb2VzRWxlbWVudEluZGV4VWludC5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0IikKICAgICAgICAgLy8g
RklYTUU6IHJlbW92ZSB0aGlzIGFmdGVyIGEgY2VydGFpbiBncmFjZSBwZXJpb2QuCiAgICAgICAg
IHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfbG9zZV9jb250ZXh0IikpIHsKQEAg
LTI4MTYsNiArMjg1OSw4IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKICAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpOworICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4
X3VpbnQiKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIp
OwogICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKTsKICAgICBp
ZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCh0aGlzKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CmluZGV4IDQ1ZGY2YTU4MjVmNDY4ZTg2ZGViMjg3Y2M4NWYwYzZhMjY3ODk1MmEuLjFkYTQ1YTM0
ZTA0M2YzMDY5N2JjMDM0MzhiNjc1NTJjMDE5YjE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBA
IGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwogY2xhc3MgT0VT
VGV4dHVyZUZsb2F0OwogY2xhc3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CitjbGFzcyBPRVNFbGVt
ZW50SW5kZXhVaW50OwogY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7
CiBjbGFzcyBXZWJHTENvbnRleHRHcm91cDsKQEAgLTM1OCwxMiArMzU5LDEyIEBAIHB1YmxpYzoK
ICAgICBib29sIHZhbGlkYXRlRWxlbWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKIAogICAgIC8vIENvbnNlcnZhdGl2ZSBidXQg
cXVpY2sgaW5kZXggdmFsaWRhdGlvbgotICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5Q29uc2Vy
dmF0aXZlKEdDM0RlbnVtIHR5cGUsIGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCk7CisgICAgYm9v
bCB2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWduZWQm
IG51bUVsZW1lbnRzUmVxdWlyZWQpOwogCiAgICAgLy8gUHJlY2lzZSBidXQgc2xvdyBpbmRleCB2
YWxpZGF0aW9uIC0tIG9ubHkgZG9uZSBpZiBjb25zZXJ2YXRpdmUgY2hlY2tzIGZhaWwKLSAgICBi
b29sIHZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0
eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKTsKKyAgICBi
b29sIHZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0
eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpOwog
ICAgIC8vIElmIG51bUVsZW1lbnRzIDw9IDAsIHdlIG9ubHkgY2hlY2sgaWYgZWFjaCBlbmFibGVk
IHZlcnRleCBhdHRyaWJ1dGUgaXMgYm91bmQgdG8gYSBidWZmZXIuCi0gICAgYm9vbCB2YWxpZGF0
ZVJlbmRlcmluZ1N0YXRlKGludCBudW1FbGVtZW50cyk7CisgICAgYm9vbCB2YWxpZGF0ZVJlbmRl
cmluZ1N0YXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzKTsKIAogICAgIGJvb2wgdmFsaWRhdGVXZWJH
TE9iamVjdChjb25zdCBjaGFyKiwgV2ViR0xPYmplY3QqKTsKIApAQCAtNTA1LDYgKzUwNiw3IEBA
IHB1YmxpYzoKICAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsK
ICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRp
dmVzOwogICAgIE93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhBcnJheU9i
amVjdDsKKyAgICBPd25QdHI8T0VTRWxlbWVudEluZGV4VWludD4gbV9vZXNFbGVtZW50SW5kZXhV
aW50OwogICAgIE93blB0cjxXZWJHTExvc2VDb250ZXh0PiBtX3dlYmdsTG9zZUNvbnRleHQ7CiAg
ICAgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5m
bzsKICAgICBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCmluZGV4
IDQ4YjI2Y2UxMjJhOGFjMmNkNzYyZDNiNjc5MWZhZjhiZDI5MGJiNWEuLjJmNGMxMmMwMzk5OTli
ZDg3YTIzYWQ0N2JjZWRmZWIzZWEwNGMxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICAvLyAgIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VTX3JnYjhf
cmdiYTgKICAgICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8gICBHTF9P
RVNfZWxlbWVudF9pbmRleF91aW50CiAgICAgLy8gICBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UKICAgICAvLyAgIEdMX0FSQl90ZXh0dXJlX3JlY3RhbmdsZSAob25seSB0aGUgc3Vi
c2V0IHJlcXVpcmVkIHRvCiAgICAgLy8gICAgIGltcGxlbWVudCBJT1N1cmZhY2UgYmluZGluZzsg
aXQncyByZWNvbW1lbmRlZCB0byBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCmlu
ZGV4IGNjY2NkMzhiZjZjOWU4ZDQzNmEwODFmOTRlMjVlMGQ3NWY5ZTRiNmMuLjI1YjlkYjM4MWM4
NDc1ODkwNjNhMGI4MjdkMDYwMGQ2YWJjOWY3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
Y3BwCkBAIC0xNTUsNiArMTU1LDEwIEBAIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdMOjpzdXBwb3J0
c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gIkdMX09FU19z
dGFuZGFyZF9kZXJpdmF0aXZlcyIpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gRGVz
a3RvcCBHTCBhbHdheXMgc3VwcG9ydHMgVU5TSUdORURfSU5UIGluZGljZXMKKyAgICBpZiAobmFt
ZSA9PSAiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCisgICAgICAgIHJldHVybiB0cnVlOwor
CiAgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAg
ICAgICAgIHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0
dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTk0OWEwMjc3NzJjNzZmMWZlNTI0
M2ZmNTU2YzgzZGU4NmZiYzU0Yi4uMTBkY2M1YzY3NDE3NTlhMjk4NjFmM2UwY2QwZTY4YzcxMjkw
MGJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTEyICBCcmFuZG9uIEpvbmVzICA8
YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNfZWxlbWVudF9pbmRl
eF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBleHRlbnNpb24gY29uZm9ybWFuY2UgdGVzdCBmcm9tIEtIUk9OT1MKKworICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hyb21p
dW0tbWFjLXNub3dsZW9wYXJkIHJlYmFzZWxpbmUgZm9yIGEgc2xpZGVyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRl
eC11aW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjUzYjk4NTQ5ZDk4ZmU2ZTI1ZTg0NDRk
ZGMxYzgzZTBmZWM5ODgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
MiBAQAorVGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIGZvciBkcmF3RWxlbWVudHMgZG9lcyBu
b3QgZXhhbWluZSB0b28gbWFueSBpbmRpY2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFdlYkdMIGNvbnRleHQgZXhpc3RzCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVk
IE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uCitQQVNTIE9FU19lbGVtZW50X2luZGV4
X3VpbnQgbGlzdGVkIGFzIHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZAorVGVz
dCB0aGF0IGRyYXdzIHdpdGggdW5zaWduZWQgaW50ZWdlciBpbmRpY2VzIHByb2R1Y2UgdGhlIGV4
cGVjdGVkIHJlc3VsdHMKK1BBU1MgRHJhdyAwIHBhc3NlZCBwaXhlbCB0ZXN0CitUZXN0aW5nIHdp
dGggdmFsaWQgaW5kaWNlcworUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdM
RVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdl
IGluZGljZXMKK0VuYWJsZSB2ZXJ0aWNlcywgdmFsaWQKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVT
LCAzLCBnbC5VTlNJR05FRF9JTlQsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorRW5hYmxlIG5vcm1hbHMsIG91dC1vZi1yYW5n
ZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGds
LmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFU
SU9OIDogCitUZXN0IHdpdGggZW5hYmxlZCBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBiZWxvbmcg
dG8gY3VycmVudCBwcm9ncmFtCitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbAor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRy
YXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZp
bmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9O
IDogCitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggaW5zdWZmaWNpZW50IGRhdGEgYnVm
ZmVyCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1Mg
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1
bmRlZmluZWQuCitQYXNzIGxhcmdlIG5lZ2F0aXZlIGluZGV4IHRvIHZlcnRleEF0dHJpYlBvaW50
ZXIKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCitQ
QVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkg
aXMgdW5kZWZpbmVkLgorVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVy
aW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMKK1BBU1MgZ2wuZHJhd0VsZW1l
bnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBl
eHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklB
TkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wg
ZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVy
cm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
X1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJv
cjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwg
Z2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURf
T1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGds
LlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09Q
RVJBVElPTi4KK1Rlc3QgdGhhdCB1cGRhdGluZyB0aGUgc2l6ZSBvZiBhIHZlcnRleCBidWZmZXIg
aXMgcHJvcGVybHkgbm90aWNlZCBieSB0aGUgV2ViR0wgaW1wbGVtZW50YXRpb24uCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciBpbml0aWFsaXphdGlv
bgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgdmVy
dGV4IHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBh
ZnRlciB0ZXh0dXJlIGNvb3JkIHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBhZnRlciB2ZXJ0ZXggcmVkZWZpbml0aW9uCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3JkaW5hdGUgLyBj
b2xvciByZWRlZmluaXRpb24KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IGFmdGVyIHNldHRpbmcgdXAgaW5kaWNlcworUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgZHJhd2luZworVGVzdCBvdXQgb2YgcmFuZ2UgaW5k
aWNlcworUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lH
TkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1Mg
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDAp
IGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGds
LmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSBn
ZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorVmVyaWZpZXMg
dGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJE
YXRhIGRvZXMgbm90IGNyYXNoLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfVkFMVUUgOiBhZnRlciBhdHRlbXB0aW5nIHRvIHVwZGF0ZSBhIGJ1ZmZlciBvdXRzaWRl
IG9mIHRoZSBhbGxvY2F0ZWQgYm91bmRzCitQQVNTIGJ1ZmZlclN1YkRhdGEsIHdoZW4gYnVmZmVy
IG9iamVjdCB3YXMgaW5pdGlhbGl6ZWQgd2l0aCBudWxsLCBkaWQgbm90IGNyYXNoCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0aGVyZSBzaG91bGQgYmUgbm8g
ZXJyb3JzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YzkyODQ0OTBiNDFkYTA5NDcyYmFhZGM3MTU3Yjc0MmUzMjkxMTE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWlu
dC5odG1sCkBAIC0wLDAgKzEsMzk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgT0VTX2VsZW1lbnRfaW5kZXhf
dWludCBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rl
c2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFz
IiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPiA8L2NhbnZhcz4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5z
aW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwordmFyIGV4dCA9IG51bGw7
Cit2YXIgdmFvID0gbnVsbDsKKworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdMIGNv
bnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2ViR0wg
Y29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFF1ZXJ5IHRoZSBleHRlbnNpb24gYW5kIHN0b3Jl
IGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQKKyAgICBleHQgPSBnbC5nZXRFeHRl
bnNpb24oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKKyAgICBpZiAoIWV4dCkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJObyBPRVNfZWxlbWVudF9pbmRleF91aW50IHN1cHBvcnQgLS0gdGhpcyBp
cyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3QoZmFsc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50
X2luZGV4X3VpbnQgZXh0ZW5zaW9uIik7CisKKyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdCh0cnVl
KTsKKyAgICAgICAgcnVuRHJhd1Rlc3RzKCk7CisKKyAgICAgICAgLy8gVGhlc2UgdGVzdHMgYXJl
IHR3ZWFrZWQgZHVwbGljYXRlcyBvZiB0aGUgYnVmZmVycy9pbmRleC12YWxpZGF0aW9uKiB0ZXN0
cworICAgICAgICAvLyB1c2luZyB1bnNpZ25lZCBpbnQgaW5kaWNlcyB0byBlbnN1cmUgdGhhdCBi
ZWhhdmlvciByZW1haW5zIGNvbnNpc3RlbnQKKyAgICAgICAgcnVuSW5kZXhWYWxpZGF0aW9uVGVz
dHMoKTsKKyAgICAgICAgcnVuQ29waWVzSW5kaWNlc1Rlc3RzKCk7CisgICAgICAgIHJ1blJlc2l6
ZWRCdWZmZXJUZXN0cygpOworICAgICAgICBydW5WZXJpZmllc1Rvb01hbnlJbmRpY2VzVGVzdHMo
KTsKKyAgICAgICAgcnVuQ3Jhc2hXaXRoQnVmZmVyU3ViRGF0YVRlc3RzKCk7CisKKyAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJv
cnMiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5h
YmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7
CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9mKCJPRVNfZWxlbWVudF9pbmRleF91aW50IikgPj0g
MCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBh
c3NlZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRF
eHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdl
dEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlm
IChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVu
dF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3Vj
Y2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPRVNf
ZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNp
b24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVu
Y3Rpb24gcnVuRHJhd1Rlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgZHJhd3Mgd2l0aCB1
bnNpZ25lZCBpbnRlZ2VyIGluZGljZXMgcHJvZHVjZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyIpOwor
ICAgIAorICAgIGNhbnZhcy53aWR0aCA9IDUwOyBjYW52YXMuaGVpZ2h0ID0gNTA7CisgICAgZ2wu
dmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAKKyAgICB2
YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbShnbCk7CisKKyAg
ICBmdW5jdGlvbiBzZXR1cERyYXcocykgeworICAgICAgICAvLyBDcmVhdGUgYSB2ZXJ0ZXggYnVm
ZmVyIHRoYXQgY2Fubm90IGJlIGZ1bGx5IGluZGV4ZWQgdmlhIHNob3J0cworICAgICAgICB2YXIg
cXVhZEFycmF5TGVuID0gNjU1MzcgKiAzOworICAgICAgICB2YXIgcXVhZEFycmF5ID0gbmV3IEZs
b2F0MzJBcnJheShxdWFkQXJyYXlMZW4pOworICAgICAgICAKKyAgICAgICAgLy8gTGVhdmUgYWxs
IGJ1dCB0aGUgbGFzdCA0IHZhbHVlcyB6ZXJvLWVkIG91dAorICAgICAgICB2YXIgaWR4ID0gcXVh
ZEFycmF5TGVuIC0gMTI7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgdGhlIGxhc3QgNCB2YWx1
ZXMgdG8gYSBxdWFkCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAg
ICBxdWFkQXJyYXlbaWR4KytdID0gMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9
IDAuMDsKKworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1
YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4w
OworCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAtMS4wICogczsKKyAgICAgICAgcXVhZEFy
cmF5W2lkeCsrXSA9IC0xLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOwor
CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlb
aWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAg
ICAgICAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAgICAgZ2wuYnVm
ZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHF1YWRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworCisg
ICAgICAgIC8vIENyZWF0ZSBhbiB1bnNpZ25lZCBpbnQgaW5kZXggYnVmZmVyIHRoYXQgaW5kZXhl
cyB0aGUgbGFzdCA0IHZlcnRpY2VzCisgICAgICAgIHZhciBiYXNlSW5kZXggPSAocXVhZEFycmF5
TGVuIC8gMykgLSA0OworCisgICAgICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRl
eE9iamVjdCk7CisgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IG5ldyBVaW50MzJBcnJheShbCisgICAgICAgICAgICBiYXNlSW5kZXggKyAwLAorICAgICAgICAg
ICAgYmFzZUluZGV4ICsgMSwKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDIsCisgICAgICAgICAg
ICBiYXNlSW5kZXggKyAyLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMywKKyAgICAgICAgICAg
IGJhc2VJbmRleCArIDBdKSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAgICAgIHZhciBvcHRfcG9z
aXRpb25Mb2NhdGlvbiA9IDA7CisgICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9w
dF9wb3NpdGlvbkxvY2F0aW9uKTsKKyAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRf
cG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICB9OworICAg
IGZ1bmN0aW9uIHJlYWRMb2NhdGlvbih4LCB5KSB7CisgICAgICAgIHZhciBwaXhlbHMgPSBuZXcg
VWludDhBcnJheSgxICogMSAqIDQpOworICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIDEsIDEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisgICAgICAgIHJldHVybiBwaXhl
bHM7CisgICAgfTsKKyAgICBmdW5jdGlvbiB0ZXN0UGl4ZWwoYmxhY2tMaXN0LCB3aGl0ZUxpc3Qp
IHsKKyAgICAgICAgZnVuY3Rpb24gdGVzdExpc3QobGlzdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbGlzdC5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAg
ICAgIHZhciBsID0gbGlzdFtuXTsKKyAgICAgICAgICAgICAgICB2YXIgeCA9IC1NYXRoLmZsb29y
KGwgKiBjYW52YXMud2lkdGggLyAyKSArIGNhbnZhcy53aWR0aCAvIDI7CisgICAgICAgICAgICAg
ICAgdmFyIHkgPSAtTWF0aC5mbG9vcihsICogY2FudmFzLmhlaWdodCAvIDIpICsgY2FudmFzLmhl
aWdodCAvIDI7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHJlYWRMb2NhdGlvbih4LCB5
KTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoc291cmNlWzBdIC0gZXhwZWN0ZWQpID4g
MikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRlc3RMaXN0KGJsYWNrTGlzdCwgMCkgJiYgdGVzdExpc3Qod2hpdGVMaXN0
LCAyNTUpOworICAgIH07CisgICAgZnVuY3Rpb24gdmVyaWZ5RHJhdyhkcmF3TnVtYmVyLCBzKSB7
CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICAgICAgZ2wu
Y2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAg
ICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9JTlQsIDApOwor
CisgICAgICAgIHZhciBibGFja0xpc3QgPSBbXTsKKyAgICAgICAgdmFyIHdoaXRlTGlzdCA9IFtd
OworICAgICAgICB2YXIgcG9pbnRzID0gWzAuMCwgMC4yLCAwLjQsIDAuNiwgMC44LCAxLjBdOwor
ICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IHBvaW50cy5sZW5ndGg7IG4rKykgeworICAgICAg
ICAgICAgaWYgKHBvaW50c1tuXSA8PSBzKSB7CisgICAgICAgICAgICAgICAgYmxhY2tMaXN0LnB1
c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd2hp
dGVMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpZiAodGVzdFBpeGVsKGJsYWNrTGlzdCwgd2hpdGVMaXN0KSkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZCgiRHJhdyAiICsgZHJhd051bWJlciArICIgcGFzc2VkIHBpeGVsIHRlc3QiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkRyYXcgIiArIGRyYXdOdW1i
ZXIgKyAiIGZhaWxlZCBwaXhlbCB0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc2V0
dXBEcmF3KDAuNSk7CisgICAgdmVyaWZ5RHJhdygwLCAwLjUpOworfQorCitmdW5jdGlvbiBydW5J
bmRleFZhbGlkYXRpb25UZXN0cygpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpbmRl
eCB2YWxpZGF0aW9uIHZlcmlmaWVzIHRoZSBjb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzIik7CisK
KyAgICBmdW5jdGlvbiBzaXplSW5CeXRlcyh0eXBlKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICAgIGNhc2UgZ2wuQllURToKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgICBjYXNlIGdsLlNIT1JUOgorICAgICAgY2FzZSBnbC5VTlNJR05F
RF9TSE9SVDoKKyAgICAgICAgcmV0dXJuIDI7CisgICAgICBjYXNlIGdsLklOVDoKKyAgICAgIGNh
c2UgZ2wuVU5TSUdORURfSU5UOgorICAgICAgY2FzZSBnbC5GTE9BVDoKKyAgICAgICAgcmV0dXJu
IDQ7CisgICAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAidW5rbm93biB0eXBlIjsKKyAgICAg
IH0KKyAgICB9CisKKyAgICB2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOwor
CisgICAgLy8gMyB2ZXJ0aWNlcyA9PiAxIHRyaWFuZ2xlLCBpbnRlcmxlYXZlZCBkYXRhCisgICAg
dmFyIGRhdGFDb21wbGV0ZSA9IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDAsIDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDFdKTsKKyAgICB2YXIgZGF0YUluY29tcGxldGUgPSBuZXcg
RmxvYXQzMkFycmF5KFswLCAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEsIDEsIDEsIDFdKTsKKyAgICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MzJBcnJheShbMCwg
MSwgMl0pOworCisgICAgZGVidWcoIlRlc3Rpbmcgd2l0aCB2YWxpZCBpbmRpY2VzIik7CisKKyAg
ICB2YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyQ29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCBkYXRhQ29tcGxldGUsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB2YXIg
ZWxlbWVudHMgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBlbGVtZW50cyk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7CisgICAgdmFyIHZlcnRleExvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHBy
b2dyYW0sICJhX3ZlcnRleCIpOworICAgIHZhciBub3JtYWxMb2MgPSBnbC5nZXRBdHRyaWJMb2Nh
dGlvbihwcm9ncmFtLCAiYV9ub3JtYWwiKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZl
cnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAw
KTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh2ZXJ0ZXhMb2MpOworICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXpl
SW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBM
RVRFJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxk
QmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVE
X0lOVCwgMCknKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworICAg
IGRlYnVnKCJUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdlIGluZGljZXMiKTsKKworICAgIHZhciBi
dWZmZXJJbmNvbXBsZXRlID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIGJ1ZmZlckluY29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
QVJSQVlfQlVGRkVSLCBkYXRhSW5jb21wbGV0ZSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIodmVydGV4TG9jLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXpl
SW5CeXRlcyhnbC5GTE9BVCksIDApOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZl
cnRleExvYyk7CisgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7Cisg
ICAgZGVidWcoIkVuYWJsZSB2ZXJ0aWNlcywgdmFsaWQiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRz
KGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCJFbmFibGUgbm9ybWFscywgb3V0LW9m
LXJhbmdlIik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZM
T0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGds
LkZMT0FUKSk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScp
OworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOworCisgICAg
ZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0
byBjdXJyZW50IHByb2dyYW0iKTsKKworICAgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShu
b3JtYWxMb2MpOworICAgIHZhciBleHRyYUxvYyA9IE1hdGgubWF4KHZlcnRleExvYywgbm9ybWFs
TG9jKSArIDE7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZXh0cmFMb2MpOworICAg
IGRlYnVnKCJFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbCIpOworICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5k
cmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7CisgICAgZGVidWcoIkVu
YWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsK
KyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGV4dHJhTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOwor
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZp
bmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDAp
Jyk7CisgICAgZGVidWcoIlBhc3MgbGFyZ2UgbmVnYXRpdmUgaW5kZXggdG8gdmVydGV4QXR0cmli
UG9pbnRlciIpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5G
TE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIC0yMDAwMDAwMDAwICogc2l6
ZUluQnl0ZXMoZ2wuRkxPQVQpKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
VkFMVUUpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7Cit9CisKK2Z1bmN0aW9uIHJ1bkNvcGllc0lu
ZGljZXNUZXN0cygpIHsKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5
cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMiKTsKKwor
ICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQ
cm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5iaW5kQnVmZmVy
KGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAvLyA0IHZlcnRpY2VzIC0+IDIg
dHJpYW5nbGVzCisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMy
QXJyYXkoWyAwLDAsMCwgMCwxLDAsIDEsMCwwLCAxLDEsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOwor
ICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsK
KworICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworCisgICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kZXhPYmplY3QpOworICAgIHZhciBp
bmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pOwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNU
QVRJQ19EUkFXKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAi
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQp
Iik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwg
ImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAw
KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwg
OCkiKTsKKyAgICBpbmRpY2VzWzBdID0gMjsKKyAgICBpbmRpY2VzWzVdID0gMTsKKyAgICBzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRS
SUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5U
UklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wu
VFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKK30KKworZnVuY3Rpb24g
cnVuUmVzaXplZEJ1ZmZlclRlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgdXBkYXRpbmcg
dGhlIHNpemUgb2YgYSB2ZXJ0ZXggYnVmZmVyIGlzIHByb3Blcmx5IG5vdGljZWQgYnkgdGhlIFdl
YkdMIGltcGxlbWVudGF0aW9uLiIpOworCisgICAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0o
Z2wsICJ2cyIsICJmcyIsIFsidlBvc2l0aW9uIiwgInZDb2xvciJdKTsKKyAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgaW5pdGlhbGl6YXRpb24iKTsKKworICAgIHZh
ciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGds
LkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWy0xLDEsMCwgMSwxLDAsIC0xLC0x
LDAsCisgICAgICAgICAtMSwtMSwwLCAxLDEsMCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsK
KyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHZlcnRleCBzZXR1cCIpOworCisgICAgdmFyIHRleENv
b3JkT2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIHRleENvb3JkT2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWzAsMCwgMSwwLCAwLDEsCisgICAgICAg
ICAwLDEsIDEsMCwgMSwxXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgxKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFm
dGVyIHRleHR1cmUgY29vcmQgc2V0dXAiKTsKKworICAgIC8vIE5vdyByZXNpemUgdGhlc2UgYnVm
ZmVycyBiZWNhdXNlIHdlIHdhbnQgdG8gY2hhbmdlIHdoYXQgd2UncmUgZHJhd2luZy4KKyAgICBn
bC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIC0xLDEs
MCwgMSwxLDAsIC0xLC0xLDAsIDEsLTEsMCwKKyAgICAgICAgLTEsMSwwLCAxLDEsMCwgLTEsLTEs
MCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiYWZ0ZXIgdmVydGV4IHJlZGVmaW5pdGlvbiIpOworICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShn
bC5BUlJBWV9CVUZGRVIsIG5ldyBVaW50OEFycmF5KFsKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUs
CisgICAgICAgIDI1NSwgMCwgMCwgMjU1LAorICAgICAgICAyNTUsIDAsIDAsIDI1NSwKKyAgICAg
ICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1LAorICAgICAgICAwLCAy
NTUsIDAsIDI1NSwKKyAgICAgICAgMCwgMjU1LCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwg
MjU1XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQs
IGdsLlVOU0lHTkVEX0JZVEUsIGZhbHNlLCAwLCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdGV4dHVyZSBjb29yZGluYXRlIC8gY29sb3IgcmVkZWZpbml0
aW9uIik7CisKKyAgICB2YXIgbnVtUXVhZHMgPSAyOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVp
bnQzMkFycmF5KG51bVF1YWRzICogNik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVF1
YWRzOyArK2lpKSB7CisgICAgICAgIHZhciBvZmZzZXQgPSBpaSAqIDY7CisgICAgICAgIHZhciBx
dWFkID0gKGlpID09IChudW1RdWFkcyAtIDEpKSA/IDQgOiAwOworICAgICAgICBpbmRpY2VzW29m
ZnNldCArIDBdID0gcXVhZCArIDA7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgMV0gPSBxdWFk
ICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyAyXSA9IHF1YWQgKyAyOworICAgICAgICBp
bmRpY2VzW29mZnNldCArIDNdID0gcXVhZCArIDI7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsg
NF0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyA1XSA9IHF1YWQgKyAzOwor
ICAgIH0KKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wu
YnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RS
QVcpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJhZnRlciBzZXR0aW5n
IHVwIGluZGljZXMiKTsKKyAgICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCBudW1RdWFk
cyAqIDYsIGdsLlVOU0lHTkVEX0lOVCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgImFmdGVyIGRyYXdpbmciKTsKK30KKworZnVuY3Rpb24gcnVuVmVyaWZpZXNUb29N
YW55SW5kaWNlc1Rlc3RzKCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGluZGV4IHZh
bGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBkb2VzIG5vdCBleGFtaW5lIHRvbyBtYW55IGluZGlj
ZXMiKTsKKworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAg
ICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5k
aXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgLy8gNCB2ZXJ0aWNlcyAtPiAyIHRyaWFuZ2xlcwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCww
LDAsIDAsMSwwLCAxLDAsMCwgMSwxLDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0
ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisKKyAgICB2YXIg
aW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKworICAgIGRlYnVnKCJUZXN0IG91dCBv
ZiByYW5nZSBpbmRpY2VzIikKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pLCBnbC5T
VEFUSUNfRFJBVyk7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwg
ImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA0
KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwg
MCkiKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQs
IDgpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkNyYXNoV2l0aEJ1ZmZlclN1YkRhdGFUZXN0cygpIHsK
KyAgICBkZWJ1ZygnVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNo
IGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNoLicpCisKKyAgICB2YXIgZWxl
bWVudEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIGVsZW1lbnRCdWZmZXIpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
RUxFTUVOVF9BUlJBWV9CVUZGRVIsIDI1NiwgZ2wuU1RBVElDX0RSQVcpOworICAgIHZhciBkYXRh
ID0gbmV3IFVpbnQzMkFycmF5KDEyNyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgNjQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9WQUxVRSwgImFmdGVyIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGEgYnVmZmVyIG91dHNpZGUg
b2YgdGhlIGFsbG9jYXRlZCBib3VuZHMiKTsKKyAgICB0ZXN0UGFzc2VkKCJidWZmZXJTdWJEYXRh
LCB3aGVuIGJ1ZmZlciBvYmplY3Qgd2FzIGluaXRpYWxpemVkIHdpdGggbnVsbCwgZGlkIG5vdCBj
cmFzaCIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzNkM2JjMWI5ZmQ4M2FmZWZlZDYyZTc3
MTM3NjIyNWIxYTAxZTdhZC4uZGVjOTAxNzNiZmI3NTIwZjllMzU4NTdkZmRkYWM3MWI5N2RiMzc3
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MSw2
ICszNzEsOSBAQCBmYXN0L2Nzcy9kcmFnZ2FibGUtcmVnaW9uLXBhcnNlci5odG1sCiAjIGh0dHA6
Ly93ZWJraXQub3JnL2IvOTY4MjgKIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXkt
b2JqZWN0Lmh0bWwKIAorIyBFeHBlY3RlZCB0byBmYWlsIHVudGlsIE9FU19lbGVtZW50X2luZGV4
X3VpbnQgZXh0ZW5zaW9uIGlzIGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTgyNTcgZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
KwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgVEVTVFMgRVhQRUNURUQgVE8g
RkFJTAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTRlMzkwOGIyMTNjMDdjN2NhY2RlMzkxOTJk
ODBiYjI1OTFhNTNkZS4uMzAyNTg0ZGQ3NDhmYmQ5ODJlYzdmZDUzODIzMDFhNmNiYWMzNGYwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE5MSw2ICsx
OTEsNyBAQCBmYXN0L2NhbnZhcy93ZWJnbC92aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUu
aHRtbAogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtYXJyYXktaW52YWxpZC1yYW5nZXMuaHRtbAog
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRtbAogZmFzdC9jYW52YXMvd2ViZ2wv
b2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbAorZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1l
bnQtaW5kZXgtdWludC5odG1sCiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5o
dG1sCiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwK
IGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2Fk
Lmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168742</attachid>
            <date>2012-10-15 11:07:31 -0700</date>
            <delta_ts>2012-10-16 10:59:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97400-20121015110622.patch</filename>
            <type>text/plain</type>
            <size>61817</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBiZmYzMGFkNjVkMzYw
MWI5MDk2YjU2NDVkOGE3OTMxNTJhYTQ0NC4uZTFlOGVkOWY5ZDkzODM0YjhkNWMxNmIxMTIyNDBm
NTQzYmYxMDE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTEyICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xNSAgTWljaGFlbCBT
YWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgUmVuZGVyVGV4dCB0
byB1c2UgU3RyaW5nIGluc3RlYWQgb2YgVUNoYXIqIGZvciB0ZXh0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGU4NjFkODA3NDhjZTU5NTY0ZmIyNmM2NjBiMWUwOTU3MmRkMmYwOGQuLmFkMjFiODFk
MWUyZTIwYTg0NTViMzliMjFkMTUyYTY5ODc5NTFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC01MjAsNiArNTIwLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMv
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxv
YXQuaWRsCiAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsCisgICAgaHRt
bC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwKICAgICBodG1sL2NhbnZhcy9VaW50MTZB
cnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZh
cy9VaW50OEFycmF5LmlkbApAQCAtMTQ3OSw2ICsxNDgwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgaHRtbC9j
YW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcAorICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAg
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTI1MzEsNiArMjUzMyw3IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1RleHR1cmVGbG9hdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlP
YmplY3QuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5jcHAKQEAgLTI1NTgsMTIgKzI1NjEsMTQgQEAgSUYgKEVOQUJMRV9X
RUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKICAgICApCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMK
ICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbAogICAg
ICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbAogICAgICAgICBodG1s
L2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRl
eEFycmF5T2JqZWN0LmlkbAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50
LmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRj
MTk5YzQ2NmEwMmFiMDJjY2E3ZDU4NzNjMTc5M2M0MTE3Njc5ZGEuLjY4NWNmNjJhNTJkZGM5MDlh
YjU5Y2FiNDhiZDhkMDM3ZmJiZjM0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMzc3LDYgKzM3Nyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0ludDE2QXJyYXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0ludDMy
QXJyYXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0ludDhBcnJheS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCmluZGV4IDg0YzlkMDc3NzFlZDFhMTc0NTY2NzJlMjcxZTMzMWJjYTRlNjg1
OGUuLjdmNDY4MjdmZWVmNzdlMWE5NWM3M2Q5NjliM2QyZWVjODc1ODJlY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5wcmkKQEAgLTMwMSw2ICszMDEsNyBAQCBJRExfQklORElOR1MgKz0gXAog
ICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAk
JFBXRC9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKICAgICAkJFBXRC9odG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTEFjdGl2
ZUluZm8uaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwgXAogICAg
ICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmMGViNzdlOTNmZGNkMWMwMDk4ZDhmNjU0ZGVk
YWY1MDkyYWQ3NzU1Li43YjFmYzUxY2NmODgwYzhiNmRlOTFkMjVhZTUwZWY0MWM4YTBkYmZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU3OSw2ICs1NzksOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNUZXh0dXJl
RmxvYXQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU1ZlcnRleEFycmF5T2JqZWN0
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU1ZlcnRleEFycmF5T2JqZWN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09zY2lsbGF0b3IuY3BwIFwKQEAgLTE1MTIsNiArMTUx
NCw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVGV4
dHVyZUZsb2F0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9i
amVjdC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5p
ZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKIAkkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9VaW50OEFycmF5LmlkbCBcCkBAIC0zMTg0LDYgKzMxODcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmggXAorCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOGZhZWI4MGM0Y2E3NjE0ZTQyNjYzNzA0NmEx
YjA5MDkwNmIyNGU2ZS4uMzA0Yzc1MGE2ZjJjMzRiZDg3ODA2MWJlYTZlNTRiYmI3ZTVjYzQ2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0zODkxLDYgKzM4OTEsNyBAQCBlbmFibGU/KFdFQkdMKSB7CiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBcCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1RleHR1cmVGbG9hdC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQu
aCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5oIFwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMuaCBcCkBAIC0zOTI0LDYgKzM5MjUsNyBAQCBlbmFibGU/KFdF
QkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIFwK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcCBcCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJl
LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggMjE0YWMyN2U4MzA5ZmNkNmJhNzFiMDJkNjI0M2ZmZWIyODRjZDk5Ni4uMmJh
ZGY5MGY1YTU0ZTdiZDY3YjE2MmI1YmUyMTM3YjQ1ODcxMzRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTE1OCw2ICsxMTU4LDcgQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
aWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1VpbnQ4QXJyYXkuaWRsJywKQEAgLTQzMDUsNiArNDMwNiw4IEBACiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09F
U1ZlcnRleEFycmF5T2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTVmVy
dGV4QXJyYXlPYmplY3QuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvV2ViR0xCdWZmZXIuaCcsCkBAIC03NzgyLDYgKzc3ODUsOCBAQAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNUZXh0dXJlRmxv
YXQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU1ZlcnRleEFycmF5T2JqZWN0LmgnLAorICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93RXZlbnQuY3BwJywK
ICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT3Zl
cmZsb3dFdmVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUGFnZVRyYW5zaXRpb25FdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg3ZWM4MGYxZmU2Mjg1
NWY2MDkxM2Q3MTE4NWI0ZGMwNGJmZTgwNTQuLmNjZGQyODE0YTg0NjExYWYzZTg1ZWFhM2FlZWU2
ODMwNGI5OTZhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE5OTYsNiArMTk5NiwxMCBAQAogCQk3RTEyRTkxMDE1RkE1RDNB
MDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYg
LyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgKi87IH07CiAJCTdFMzNDRDAxMTI3RjM0
MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlv
cml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzdFRjJEMTMzOTIw
ODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCAqLzsgfTsKKwkJN0U0NkY2RkEx
NjI3QTJDQTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ2RjZGODE2MjdBMkM5MDAwNjIy
MjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKKwkJN0U0NkY2RkIxNjI3QTJD
QTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpT
T0VTRWxlbWVudEluZGV4VWludC5oICovOyB9OworCQk3RTVEN0E3NjE2MUQzRjhGMDA4OTZDMzQg
LyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudElu
ZGV4VWludC5jcHAgKi87IH07CisJCTdFNUQ3QTc3MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVt
ZW50SW5kZXhVaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RTVEN0E3NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICov
OyB9OwogCQk3RTk5QUY1MTBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5k
aWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFOTlBRjUyMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3Iu
Y3BwICovOyB9OwogCQk3RTk5QUY1MzBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxv
d2VkSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNh
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0VFNjg0NUYxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEMxMkQyNkUzODAw
RTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwICovOyB9OwpAQCAtOTIyOSw2ICs5MjMzLDEw
IEBACiAJCTdFMTJFOTBFMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJh
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZpbHRl
ck1lc2hHZW5lcmF0b3IuY3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0UzM0NEMDAxMjdGMzQwRDAw
QkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHVyZ2VQcmlvcml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTM3RUYy
RDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgcGF0aCA9
IGNmL1N1YnJlc291cmNlTG9hZGVyQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTRWxlbWVudEluZGV4VWlu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNDZGNkY5MTYyN0EyQzkwMDA2
MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNPRVNFbGVtZW50SW5kZXhVaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRleFVp
bnQuY3BwOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3RTVEN0E3NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVu
dEluZGV4VWludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPRVNFbGVtZW50
SW5kZXhVaW50Lmg7IHBhdGggPSBjYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93
Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93
ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93Rm9j
dXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4
NDRDMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ0YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTUxMjksNiArMTUxMzcsOCBAQAogCQk0OTQ4NEZBRTEwMkNG
MDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4
VWludC5jcHAgKi8sCisJCQkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJ
bmRleFVpbnQuaCAqLywKIAkJCQk0OUVFQ0RDQzEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZm
ZXIuaWRsICovLAogCQkJCTQ5RUVDREM5MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuaWRsICovLAogCQkJCTZFNEU5MUE3MTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0
QXR0cmlidXRlcy5jcHAgKi8sCkBAIC0xODQ3OCw2ICsxODQ4OCw4IEBACiAJCQkJRTQ0NjE0MTEw
Q0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFFcnJvci5oICovLAogCQkJCTEwNTk0NTc1MTVCNDJB
MEQwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8sCiAJCQkJMTA1OTQ1Nzkx
NUI0MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggKi8sCisJCQkJN0U0NkY2
RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8sCisJCQkJ
N0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oICovLAog
CQkJCTkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
Y3BwICovLAogCQkJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuaCAqLywKIAkJCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0
dXJlRmxvYXQuY3BwICovLApAQCAtMjU1OTgsNiArMjU2MTAsOCBAQAogCQkJCTUxNEJDODQzMTYx
Q0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcy
OEJEOUUxNjI1MzY5NjAwQzQwQjU2IC8qIFNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVnaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzkxQTk5MTE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFNUQ3QTc3MTYxRDNGOEYwMDg5NkMz
NCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTQ2RjZGQjE2
MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTI4NzAyLDYgKzI4NzE2LDggQEAKIAkJCQkzMTk1NUE4NjE2MEQxOTkwMDA4NTgwMjUgLyog
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0QkM4M0Yx
NjFDRjA0QTAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTE0QkM4NDIxNjFDRjA1QzAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTdFNUQ3QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdFNDZGNkZBMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKaW5kZXggZjRhZjU1ZDgyNmI2ZWFmY2VmZjI1NDIwYzAwYjFjN2E3ZjQ2MmIwZS4uYzkzZjM0
MDFlNzAxZmI3NDY2MTExNDU5ZWQ0MzM4YzljNTE3NzkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkpTSFRNTEltYWdlRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCisjaW5j
bHVkZSAiSlNPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiSlNPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiSlNPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJK
U09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC01Nyw2ICs1OCw3IEBACiAjaW5jbHVkZSAiSlNX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXgu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRl
eFVpbnQuaCIKICNpbmNsdWRlICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAi
T0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAg
LTIwMCw2ICsyMDIsOCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU0VsZW1lbnRJbmRleFVpbnROYW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFt
ZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAKaW5kZXggMDYzNTQ5NjlkNDRkM2M0NmE1OTNkZGE1NTRhMzVkMmYxMDg2OTY2ZC4u
NDE1NjgzMmQyZGM4NGE3MjQ2YmU2ZDI3NTY1NTU1ZTIwZDRlZmRhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiVjhJ
bnQxNkFycmF5LmgiCiAjaW5jbHVkZSAiVjhJbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhJbnQ4
QXJyYXkuaCIKKyNpbmNsdWRlICJWOE9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJW
OE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJWOE9FU1RleHR1cmVGbG9hdC5o
IgogI2luY2x1ZGUgIlY4T0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTE5MSw2ICsxOTIsMTAg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KFdlYkdMRXh0ZW5zaW9u
KiBleHRlbnNpb24sIHY4OjpIYW5kbGU8djgKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9W
OChzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbiksIGNvbnRleHRP
YmplY3QsIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1ZlcnRleEFycmF5
T2JqZWN0TmFtZSI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9F
U0VsZW1lbnRJbmRleFVpbnROYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0
YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0
LCBpc29sYXRlKTsKKyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNFbGVtZW50SW5kZXhVaW50
TmFtZSI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVi
dWdSZW5kZXJlckluZm9OYW1lOgogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRp
Y19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0
LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnUmVuZGVyZXJJ
bmZvTmFtZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJ
bmRleFVpbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ZGYwYmMxNWMzOTE2MTdjZDkwYjdmMjRkNzU4NDFj
ZTEyMjE5ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiT0VTRWxlbWVudElu
ZGV4VWludC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK09FU0VsZW1lbnRJbmRleFVpbnQ6
Ok9FU0VsZW1lbnRJbmRleFVpbnQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAg
IDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKK3sKK30KKworT0VTRWxlbWVudEluZGV4VWludDo6
fk9FU0VsZW1lbnRJbmRleFVpbnQoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9u
TmFtZSBPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
T0VTRWxlbWVudEluZGV4VWludE5hbWU7Cit9CisKK1Bhc3NPd25QdHI8T0VTRWxlbWVudEluZGV4
VWludD4gT0VTRWxlbWVudEluZGV4VWludDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE9FU0VsZW1lbnRJbmRleFVpbnQo
Y29udGV4dCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5k
ZXhVaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJkNDI4NzNhMjA1NGQwNTg4M2E3MzkzODExNjgzZjkxOGVl
ZWJjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0Vs
ZW1lbnRJbmRleFVpbnQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPRVNFbGVt
ZW50SW5kZXhVaW50X2gKKyNkZWZpbmUgT0VTRWxlbWVudEluZGV4VWludF9oCisKKyNpbmNsdWRl
ICJXZWJHTEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgT0VTRWxlbWVudEluZGV4VWludCA6IHB1YmxpYyBXZWJH
TEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8T0VTRWxlbWVudElu
ZGV4VWludD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+
T0VTRWxlbWVudEluZGV4VWludCgpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1l
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgT0VTRWxlbWVudEluZGV4VWludChXZWJHTFJlbmRl
cmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IE9FU0VsZW1lbnRJbmRleFVpbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTU2NDAxNTNmYjRmNjUxYjIy
MDY1M2QyOGM1MzNhY2VlYWQ5ODFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1X
RUJHTCwKKyAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgICAg
ICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIE9FU0VsZW1lbnRJbmRleFVpbnQgeworICAgIH07Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAppbmRleCA2OTY4
YTAyYjRiOTlhYmE4N2E0Y2QyMTU4MjAzNjU4OTZmM2M4MTIzLi5mZmVjNjE2Y2FiZjgxMGQ2Y2Uw
MjY2NTE3ODc3YTJiN2Y2NTUxZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgICAgICBXZWJHTERl
YnVnU2hhZGVyc05hbWUsCiAgICAgICAgIFdlYktpdFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
TmFtZSwgLy8gV0VCS0lUXyBwcmVmaXggdW50aWwgZXh0ZW5zaW9uIGlzIG9mZmljaWFsCiAgICAg
ICAgIFdlYktpdFdlYkdMRGVwdGhUZXh0dXJlTmFtZSwgLy8gV0VCS0lUXyBwcmVmaXggdW50aWwg
ZXh0ZW5zaW9uIGlzIG9mZmljaWFsCisgICAgICAgIE9FU0VsZW1lbnRJbmRleFVpbnROYW1lLAog
ICAgIH07CiAKICAgICB2b2lkIHJlZigpIHsgbV9jb250ZXh0LT5yZWYoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggNzQ5ZDUxOTE0ZWUzMmExOGNmMTFkZDhkMDQ2ZDI4YWNhZjVmNjZhNC4uZjRjN2FlMTI4YmI1
ZDM1OTc2ZTkxNzc1MGQzODAxNDdmYWQxNjE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4VWludC5oIgogI2lu
Y2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxv
YXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgpAQCAtMTY5MCw3ICsxNjkx
LDE4IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUVsZW1lbnRBcnJheVNp
emUoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0CiAgICAgaWYgKG9mZnNldCA8IDApCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9TSE9SVCkgeworICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJ
R05FRF9JTlQpIHsKKyAgICAgICAgLy8gRm9yIGFuIHVuc2lnbmVkIGludCBhcnJheSwgb2Zmc2V0
IG11c3QgYmUgZGl2aXNpYmxlIGJ5IDQgZm9yIGFsaWdubWVudCByZWFzb25zLgorICAgICAgICBp
ZiAob2Zmc2V0ICUgNCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBN
YWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZzZXQuCisgICAgICAgIG9mZnNldCAvPSA0OworCisg
ICAgICAgIEdDM0RzaXplaXB0ciBuID0gZWxlbWVudEFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkg
LyA0OworICAgICAgICBpZiAob2Zmc2V0ID4gbiB8fCBjb3VudCA+IG4gLSBvZmZzZXQpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIGlmICh0eXBlID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9TSE9SVCkgewogICAgICAgICAvLyBGb3IgYW4gdW5zaWduZWQgc2hv
cnQgYXJyYXksIG9mZnNldCBtdXN0IGJlIGRpdmlzaWJsZSBieSAyIGZvciBhbGlnbm1lbnQgcmVh
c29ucy4KICAgICAgICAgaWYgKG9mZnNldCAlIDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0xNzA5LDcgKzE3MjEsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRh
dGVFbGVtZW50QXJyYXlTaXplKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFy
cmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCkK
K2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRp
dmUoR0MzRGVudW0gdHlwZSwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCiB7CiAgICAg
Ly8gUGVyZm9ybXMgY29uc2VydmF0aXZlIHZhbGlkYXRpb24gYnkgY2FjaGluZyBhIG1heGltdW0g
aW5kZXggb2YKICAgICAvLyB0aGUgZ2l2ZW4gdHlwZSBwZXIgZWxlbWVudCBhcnJheSBidWZmZXIu
IElmIGFsbCBvZiB0aGUgYm91bmQKQEAgLTE3NDYsNiArMTc1OCwxNSBAQCBib29sIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5
cGUsIGludCYgbgogICAgICAgICAgICAgICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBzdGF0
aWNfY2FzdDxpbnQ+KHBbaV0pKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0lOVDogeworICAgICAgICAgICAg
aWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgbnVtRWxlbWVudHMgLz0gc2l6ZW9mKEdDM0R1aW50KTsKKyAgICAgICAg
ICAgIGNvbnN0IEdDM0R1aW50KiBwID0gc3RhdGljX2Nhc3Q8Y29uc3QgR0MzRHVpbnQqPihidWZm
ZXItPmRhdGEoKSk7CisgICAgICAgICAgICBmb3IgKEdDM0RzaXplaXB0ciBpID0gMDsgaSA8IG51
bUVsZW1lbnRzOyBpKyspCisgICAgICAgICAgICAgICAgbWF4SW5kZXggPSBtYXgobWF4SW5kZXgs
IHN0YXRpY19jYXN0PGludD4ocFtpXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpA
QCAtMTc2MiwxMCArMTc4MywxMCBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRh
dGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIGludCYgbgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhB
cnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9m
ZnNldCwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0
eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCiB7
CiAgICAgQVNTRVJUKGNvdW50ID49IDAgJiYgb2Zmc2V0ID49IDApOwotICAgIGludCBsYXN0SW5k
ZXggPSAtMTsKKyAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSAwOwogICAgIAogICAgIFJlZlB0cjxX
ZWJHTEJ1ZmZlcj4gZWxlbWVudEFycmF5QnVmZmVyID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKTsKIApAQCAtMTc4Myw3ICsxODA0LDE2IEBAIGJvb2wg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXpl
aSBjb3VudCwgR0MzRGVudW0KICAgICB1bnNpZ25lZCBsb25nIHVvZmZzZXQgPSBvZmZzZXQ7CiAg
ICAgdW5zaWduZWQgbG9uZyBuID0gY291bnQ7CiAKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlQpIHsKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5TSUdORURfSU5UKSB7CisgICAgICAgIC8vIE1ha2UgdW9mZnNldCBhbiBlbGVtZW50
IG9mZnNldC4KKyAgICAgICAgdW9mZnNldCAvPSBzaXplb2YoR0MzRHVpbnQpOworICAgICAgICBj
b25zdCBHQzNEdWludCogcCA9IHN0YXRpY19jYXN0PGNvbnN0IEdDM0R1aW50Kj4oZWxlbWVudEFy
cmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKS0+ZGF0YSgpKSArIHVvZmZzZXQ7CisgICAg
ICAgIHdoaWxlIChuLS0gPiAwKSB7CisgICAgICAgICAgICBpZiAoKnAgPiBsYXN0SW5kZXgpCisg
ICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gKnA7CisgICAgICAgICAgICArK3A7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUKSB7CiAgICAgICAgIC8vIE1ha2UgdW9mZnNldCBhbiBlbGVtZW50IG9mZnNldC4KICAgICAg
ICAgdW9mZnNldCAvPSBzaXplb2YoR0MzRHVzaG9ydCk7CiAgICAgICAgIGNvbnN0IEdDM0R1c2hv
cnQqIHAgPSBzdGF0aWNfY2FzdDxjb25zdCBHQzNEdXNob3J0Kj4oZWxlbWVudEFycmF5QnVmZmVy
LT5lbGVtZW50QXJyYXlCdWZmZXIoKS0+ZGF0YSgpKSArIHVvZmZzZXQ7CkBAIC0xODA2LDcgKzE4
MzYsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtCiAgICAgcmV0dXJuIG51bUVsZW1lbnRzUmVx
dWlyZWQgPiAwOwogfQogCi1ib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVSZW5k
ZXJpbmdTdGF0ZShpbnQgbnVtRWxlbWVudHNSZXF1aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzUmVxdWly
ZWQpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRQcm9ncmFtKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0xODIzLDcgKzE4NTMsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRh
dGVSZW5kZXJpbmdTdGF0ZShpbnQgbnVtRWxlbWVudHNSZXF1aXJlZCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICAvLyBMb29rIGluIGVhY2ggY29uc3VtZWQgdmVydGV4IGF0dHJpYiAoYnkg
dGhlIGN1cnJlbnQgcHJvZ3JhbSkgYW5kIGZpbmQgdGhlIHNtYWxsZXN0IGJ1ZmZlciBzaXplCi0g
ICAgaW50IHNtYWxsZXN0TnVtRWxlbWVudHMgPSBJTlRfTUFYOworICAgIHVuc2lnbmVkIHNtYWxs
ZXN0TnVtRWxlbWVudHMgPSBVSU5UX01BWDsKICAgICBpbnQgbnVtQWN0aXZlQXR0cmliTG9jYXRp
b25zID0gbV9jdXJyZW50UHJvZ3JhbS0+bnVtQWN0aXZlQXR0cmliTG9jYXRpb25zKCk7CiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1BY3RpdmVBdHRyaWJMb2NhdGlvbnM7ICsraSkgewogICAg
ICAgICBpbnQgbG9jID0gbV9jdXJyZW50UHJvZ3JhbS0+Z2V0QWN0aXZlQXR0cmliTG9jYXRpb24o
aSk7CkBAIC0xODM0LDcgKzE4NjQsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFs
aWRhdGVSZW5kZXJpbmdTdGF0ZShpbnQgbnVtRWxlbWVudHNSZXF1aXJlZCkKICAgICAgICAgICAg
ICAgICAvLyBGb3IgdGhlIGxhc3QgZWxlbWVudCwgd2Ugd2lsbCBvbmx5IHRvdWNoIHRoZSBkYXRh
IGZvciB0aGUKICAgICAgICAgICAgICAgICAvLyBlbGVtZW50IGFuZCBub3RoaW5nIGJleW9uZCBp
dC4KICAgICAgICAgICAgICAgICBpbnQgYnl0ZXNSZW1haW5pbmcgPSBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXRlLmJ1ZmZlckJpbmRpbmctPmJ5dGVMZW5ndGgoKSAtIHN0YXRlLm9mZnNldCk7Ci0gICAg
ICAgICAgICAgICAgaW50IG51bUVsZW1lbnRzID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBudW1FbGVtZW50cyA9IDA7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHN0YXRlLnN0cmlkZSA+
IDApOwogICAgICAgICAgICAgICAgIGlmIChieXRlc1JlbWFpbmluZyA+PSBzdGF0ZS5ieXRlc1Bl
ckVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIG51bUVsZW1lbnRzID0gMSArIChieXRlc1Jl
bWFpbmluZyAtIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCkgLyBzdGF0ZS5zdHJpZGU7CkBAIC0xOTM0
LDYgKzE5NjQsMTEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRyYXdFbGVtZW50cyhH
QzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnUKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX1NIT1JUOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9JTlQ6CisgICAgICAgIGlmIChtX29lc0VsZW1lbnRJbmRleFVpbnQpCisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImRyYXdFbGVtZW50cyIsICJpbnZhbGlkIHR5cGUiKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJkcmF3RWxlbWVudHMiLCAiaW52YWxpZCB0eXBl
Iik7CiAgICAgICAgIHJldHVybjsKQEAgLTE5NTQsNyArMTk4OSw3IEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50
LCBHQzNEZW51CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgbnVtRWxlbWVudHMg
PSAwOworICAgIHVuc2lnbmVkIG51bUVsZW1lbnRzID0gMDsKICAgICBpZiAoIWlzRXJyb3JHZW5l
cmF0ZWRPbk91dE9mQm91bmRzQWNjZXNzZXMoKSkgewogICAgICAgICAvLyBFbnN1cmUgd2UgaGF2
ZSBhIHZhbGlkIHJlbmRlcmluZyBzdGF0ZQogICAgICAgICBpZiAoIXZhbGlkYXRlRWxlbWVudEFy
cmF5U2l6ZShjb3VudCwgdHlwZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSkpIHsK
QEAgLTIzMTUsNiArMjM1MCwxNCBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAgIH0KKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQorICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2lu
ZGV4X3VpbnQiKSkgeworICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkgeworICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX09F
U19lbGVtZW50X2luZGV4X3VpbnQiKTsKKyAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWlu
dCA9IE9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgpOworICAgIH0KICAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKQogICAgICAg
ICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgYWZ0ZXIgYSBjZXJ0YWluIGdyYWNlIHBlcmlvZC4KICAg
ICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQktJVF9sb3NlX2NvbnRleHQiKSkg
ewpAQCAtMjgxNiw2ICsyODU5LDggQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VC
S0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwogICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iikp
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CisgICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRf
aW5kZXhfdWludCIpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfZWxlbWVudF9pbmRleF91
aW50Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2xvc2VfY29udGV4dCIpOwog
ICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKHRoaXMpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKaW5kZXggMjZmYzY2YzViNWZmODU5NjBjZjY0YzkzYzM3MGNiYjBlYmNmYjgxNC4uODZl
YjgyOWYyMjcwY2EyYmFkMDlmZjQ4Mzg5YmFiYTRiOGQ2ODAwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQ5LDYgKzQ5
LDcgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiBjbGFz
cyBPRVNUZXh0dXJlRmxvYXQ7CiBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKK2NsYXNzIE9F
U0VsZW1lbnRJbmRleFVpbnQ7CiBjbGFzcyBXZWJHTEFjdGl2ZUluZm87CiBjbGFzcyBXZWJHTEJ1
ZmZlcjsKIGNsYXNzIFdlYkdMQ29udGV4dEdyb3VwOwpAQCAtMzU4LDEyICszNTksMTIgQEAgcHVi
bGljOgogICAgIGJvb2wgdmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKEdDM0RzaXplaSBjb3VudCwg
R0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQpOwogCiAgICAgLy8gQ29uc2VydmF0aXZl
IGJ1dCBxdWljayBpbmRleCB2YWxpZGF0aW9uCi0gICAgYm9vbCB2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKTsKKyAg
ICBib29sIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNp
Z25lZCYgbnVtRWxlbWVudHNSZXF1aXJlZCk7CiAKICAgICAvLyBQcmVjaXNlIGJ1dCBzbG93IGlu
ZGV4IHZhbGlkYXRpb24gLS0gb25seSBkb25lIGlmIGNvbnNlcnZhdGl2ZSBjaGVja3MgZmFpbAot
ICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpOwor
ICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCB1bnNpZ25lZCYgbnVtRWxlbWVudHNSZXF1aXJl
ZCk7CiAgICAgLy8gSWYgbnVtRWxlbWVudHMgPD0gMCwgd2Ugb25seSBjaGVjayBpZiBlYWNoIGVu
YWJsZWQgdmVydGV4IGF0dHJpYnV0ZSBpcyBib3VuZCB0byBhIGJ1ZmZlci4KLSAgICBib29sIHZh
bGlkYXRlUmVuZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRzKTsKKyAgICBib29sIHZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUodW5zaWduZWQgbnVtRWxlbWVudHMpOwogCiAgICAgYm9vbCB2YWxpZGF0
ZVdlYkdMT2JqZWN0KGNvbnN0IGNoYXIqLCBXZWJHTE9iamVjdCopOwogCkBAIC01MDUsNiArNTA2
LDcgQEAgcHVibGljOgogICAgIE93blB0cjxPRVNUZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZs
b2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVy
aXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFy
cmF5T2JqZWN0OworICAgIE93blB0cjxPRVNFbGVtZW50SW5kZXhVaW50PiBtX29lc0VsZW1lbnRJ
bmRleFVpbnQ7CiAgICAgT3duUHRyPFdlYkdMTG9zZUNvbnRleHQ+IG1fd2ViZ2xMb3NlQ29udGV4
dDsKICAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvOwogICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVy
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lv
bnMzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgK
aW5kZXggNDhiMjZjZTEyMmE4YWMyY2Q3NjJkM2I2NzkxZmFmOGJkMjkwYmI1YS4uMmY0YzEyYzAz
OTk5OWJkODdhMjNhZDQ3YmNlZGZlYjNlYTA0YzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIC8vICAgR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNf
cmdiOF9yZ2JhOAogICAgIC8vICAgR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAg
IEdMX09FU19lbGVtZW50X2luZGV4X3VpbnQKICAgICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRf
c2hhZGVyX3NvdXJjZQogICAgIC8vICAgR0xfQVJCX3RleHR1cmVfcmVjdGFuZ2xlIChvbmx5IHRo
ZSBzdWJzZXQgcmVxdWlyZWQgdG8KICAgICAvLyAgICAgaW1wbGVtZW50IElPU3VyZmFjZSBiaW5k
aW5nOyBpdCdzIHJlY29tbWVuZGVkIHRvIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHAKaW5kZXggY2NjY2QzOGJmNmM5ZThkNDM2YTA4MWY5NGUyNWUwZDc1ZjllNGI2Yy4uMjViOWRi
MzgxYzg0NzU4OTA2M2EwYjgyN2QwNjAwZDZhYmM5Zjc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTC5jcHAKQEAgLTE1NSw2ICsxNTUsMTAgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OnN1
cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBpZiAobmFtZSA9PSAiR0xf
T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAv
LyBEZXNrdG9wIEdMIGFsd2F5cyBzdXBwb3J0cyBVTlNJR05FRF9JTlQgaW5kaWNlcworICAgIGlm
IChuYW1lID09ICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKICAgICBpZiAobmFtZSA9PSAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
IikKICAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfRVhU
X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZThhYjY0NmRhYjE5MjE1
MDk3MWRiZTUyNzQyNjczNDIzZjNlMjUyLi5jNjBhYjBmNTVkMzFkYzQxNWNiN2JmMGMxZDM0ZjRh
YzliNDI2ZGFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMTIgIEJyYW5kb24gSm9u
ZXMgIDxiYWpvbmVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9FU19lbGVtZW50
X2luZGV4X3VpbnQgLyBXRUJLSVRfT0VTX2VsZW1lbnRfaW5kZXhfdWludAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0MDAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBPRVNfZWxlbWVudF9pbmRl
eF91aW50IGV4dGVuc2lvbiBjb25mb3JtYW5jZSB0ZXN0IGZyb20gS0hST05PUworCisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVp
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMTUg
IFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBpbnNwZWN0b3IgdGVzdHMgZml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMjUzYjk4NTQ5ZDk4ZmU2ZTI1ZTg0NDRkZGMxYzgzZTBmZWM5ODgxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1l
bnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MiBAQAorVGVzdHMgdGhhdCBp
bmRleCB2YWxpZGF0aW9uIGZvciBkcmF3RWxlbWVudHMgZG9lcyBub3QgZXhhbWluZSB0b28gbWFu
eSBpbmRpY2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFdlYkdMIGNv
bnRleHQgZXhpc3RzCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50X2luZGV4
X3VpbnQgZXh0ZW5zaW9uCitQQVNTIE9FU19lbGVtZW50X2luZGV4X3VpbnQgbGlzdGVkIGFzIHN1
cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZAorVGVzdCB0aGF0IGRyYXdzIHdpdGgg
dW5zaWduZWQgaW50ZWdlciBpbmRpY2VzIHByb2R1Y2UgdGhlIGV4cGVjdGVkIHJlc3VsdHMKK1BB
U1MgRHJhdyAwIHBhc3NlZCBwaXhlbCB0ZXN0CitUZXN0aW5nIHdpdGggdmFsaWQgaW5kaWNlcwor
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFN
RUJVRkZFUl9DT01QTEVURQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVE
X0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCitUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdlIGluZGljZXMKK0VuYWJsZSB2
ZXJ0aWNlcywgdmFsaWQKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9J
TlQsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAorRW5hYmxlIG5vcm1hbHMsIG91dC1vZi1yYW5nZQorUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5U
UklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCitUZXN0IHdpdGgg
ZW5hYmxlZCBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gY3VycmVudCBwcm9ncmFt
CitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbAorUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklB
TkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCitFbmFibGUgYW4gZXh0
cmEgYXR0cmlidXRlIHdpdGggaW5zdWZmaWNpZW50IGRhdGEgYnVmZmVyCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGds
LlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQYXNzIGxh
cmdlIG5lZ2F0aXZlIGluZGV4IHRvIHZlcnRleEF0dHJpYlBvaW50ZXIKK1BBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCitQQVNTIGdsLmRyYXdFbGVtZW50
cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorVGVz
dCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5k
IGJ1ZmZlclN1YkRhdGEgY2FsbHMKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NU
UklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjog
Tk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wu
VU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BF
UkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVO
U0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJB
VElPTi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJ
R05FRF9JTlQsIDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNT
IGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAw
KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBn
bC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkg
Z2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1Rlc3QgdGhh
dCB1cGRhdGluZyB0aGUgc2l6ZSBvZiBhIHZlcnRleCBidWZmZXIgaXMgcHJvcGVybHkgbm90aWNl
ZCBieSB0aGUgV2ViR0wgaW1wbGVtZW50YXRpb24uCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciBpbml0aWFsaXphdGlvbgorUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgdmVydGV4IHNldHVwCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3Jk
IHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRl
ciB2ZXJ0ZXggcmVkZWZpbml0aW9uCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3JkaW5hdGUgLyBjb2xvciByZWRlZmluaXRpb24K
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIHNldHRp
bmcgdXAgaW5kaWNlcworUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogYWZ0ZXIgZHJhd2luZworVGVzdCBvdXQgb2YgcmFuZ2UgaW5kaWNlcworUEFTUyBnbC5kcmF3
RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkgZ2VuZXJh
dGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGds
LlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDApIGdlbmVyYXRlZCBleHBlY3Rl
ZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5U
UklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSBnZW5lcmF0ZWQgZXhwZWN0ZWQg
R0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFs
aWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNo
LgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiBhZnRl
ciBhdHRlbXB0aW5nIHRvIHVwZGF0ZSBhIGJ1ZmZlciBvdXRzaWRlIG9mIHRoZSBhbGxvY2F0ZWQg
Ym91bmRzCitQQVNTIGJ1ZmZlclN1YkRhdGEsIHdoZW4gYnVmZmVyIG9iamVjdCB3YXMgaW5pdGlh
bGl6ZWQgd2l0aCBudWxsLCBkaWQgbm90IGNyYXNoCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiB0aGVyZSBzaG91bGQgYmUgbm8gZXJyb3JzCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzkyODQ0OTBiNDFkYTA5
NDcyYmFhZGM3MTU3Yjc0MmUzMjkxMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sCkBAIC0wLDAgKzEs
Mzk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBDb25mb3JtYW5jZSBU
ZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiBzdHlsZT0id2lkdGg6IDUw
cHg7IGhlaWdodDogNTBweDsiPiA8L2NhbnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxp
dHkgb2YgdGhlIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uLCBpZiBpdCBpcyBhdmFp
bGFibGUuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBnbCA9IGNy
ZWF0ZTNEQ29udGV4dChjYW52YXMpOwordmFyIGV4dCA9IG51bGw7Cit2YXIgdmFvID0gbnVsbDsK
KworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhp
c3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsK
KworICAgIC8vIFF1ZXJ5IHRoZSBleHRlbnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNvIHNob3Vs
ZEJlIGNhbiBhY2Nlc3MgaXQKKyAgICBleHQgPSBnbC5nZXRFeHRlbnNpb24oIk9FU19lbGVtZW50
X2luZGV4X3VpbnQiKTsKKyAgICBpZiAoIWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBP
RVNfZWxlbWVudF9pbmRleF91aW50IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworCisgICAg
ICAgIHJ1blN1cHBvcnRlZFRlc3QoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQ
YXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5z
aW9uIik7CisKKyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdCh0cnVlKTsKKyAgICAgICAgcnVuRHJh
d1Rlc3RzKCk7CisKKyAgICAgICAgLy8gVGhlc2UgdGVzdHMgYXJlIHR3ZWFrZWQgZHVwbGljYXRl
cyBvZiB0aGUgYnVmZmVycy9pbmRleC12YWxpZGF0aW9uKiB0ZXN0cworICAgICAgICAvLyB1c2lu
ZyB1bnNpZ25lZCBpbnQgaW5kaWNlcyB0byBlbnN1cmUgdGhhdCBiZWhhdmlvciByZW1haW5zIGNv
bnNpc3RlbnQKKyAgICAgICAgcnVuSW5kZXhWYWxpZGF0aW9uVGVzdHMoKTsKKyAgICAgICAgcnVu
Q29waWVzSW5kaWNlc1Rlc3RzKCk7CisgICAgICAgIHJ1blJlc2l6ZWRCdWZmZXJUZXN0cygpOwor
ICAgICAgICBydW5WZXJpZmllc1Rvb01hbnlJbmRpY2VzVGVzdHMoKTsKKyAgICAgICAgcnVuQ3Jh
c2hXaXRoQnVmZmVyU3ViRGF0YVRlc3RzKCk7CisKKyAgICAgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMiKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIHJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBz
dXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgICAgaWYgKHN1cHBvcnRl
ZC5pbmRleE9mKCJPRVNfZWxlbWVudF9pbmRleF91aW50IikgPj0gMCkgeworICAgICAgICBpZiAo
ZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiT0VTX2VsZW1lbnRf
aW5kZXhfdWludCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVk
Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVu
dF9pbmRleF91aW50IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQi
KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVk
KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IG5vdCBs
aXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPRVNfZWxlbWVudF9pbmRleF91aW50
IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMg
aXMgbGVnYWwiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gcnVuRHJhd1Rlc3Rz
KCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgZHJhd3Mgd2l0aCB1bnNpZ25lZCBpbnRlZ2VyIGlu
ZGljZXMgcHJvZHVjZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyIpOworICAgIAorICAgIGNhbnZhcy53
aWR0aCA9IDUwOyBjYW52YXMuaGVpZ2h0ID0gNTA7CisgICAgZ2wudmlld3BvcnQoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAKKyAgICB2YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbShnbCk7CisKKyAgICBmdW5jdGlvbiBzZXR1cERy
YXcocykgeworICAgICAgICAvLyBDcmVhdGUgYSB2ZXJ0ZXggYnVmZmVyIHRoYXQgY2Fubm90IGJl
IGZ1bGx5IGluZGV4ZWQgdmlhIHNob3J0cworICAgICAgICB2YXIgcXVhZEFycmF5TGVuID0gNjU1
MzcgKiAzOworICAgICAgICB2YXIgcXVhZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShxdWFkQXJy
YXlMZW4pOworICAgICAgICAKKyAgICAgICAgLy8gTGVhdmUgYWxsIGJ1dCB0aGUgbGFzdCA0IHZh
bHVlcyB6ZXJvLWVkIG91dAorICAgICAgICB2YXIgaWR4ID0gcXVhZEFycmF5TGVuIC0gMTI7CisK
KyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgdGhlIGxhc3QgNCB2YWx1ZXMgdG8gYSBxdWFkCisgICAg
ICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4Kytd
ID0gMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IDAuMDsKKworICAgICAgICBx
dWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAx
LjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRB
cnJheVtpZHgrK10gPSAtMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IC0xLjAg
KiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRBcnJh
eVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7
CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAgICAgICAgdmFyIHZlcnRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZ
X0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIHF1YWRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAgICAgIC8vIENyZWF0ZSBh
biB1bnNpZ25lZCBpbnQgaW5kZXggYnVmZmVyIHRoYXQgaW5kZXhlcyB0aGUgbGFzdCA0IHZlcnRp
Y2VzCisgICAgICAgIHZhciBiYXNlSW5kZXggPSAocXVhZEFycmF5TGVuIC8gMykgLSA0OworCisg
ICAgICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50MzJBcnJheShb
CisgICAgICAgICAgICBiYXNlSW5kZXggKyAwLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMSwK
KyAgICAgICAgICAgIGJhc2VJbmRleCArIDIsCisgICAgICAgICAgICBiYXNlSW5kZXggKyAyLAor
ICAgICAgICAgICAgYmFzZUluZGV4ICsgMywKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDBdKSwg
Z2wuU1RBVElDX0RSQVcpOworCisgICAgICAgIHZhciBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IDA7
CisgICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdF9wb3NpdGlvbkxvY2F0aW9u
KTsKKyAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRfcG9zaXRpb25Mb2NhdGlvbiwg
MywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICB9OworICAgIGZ1bmN0aW9uIHJlYWRMb2Nh
dGlvbih4LCB5KSB7CisgICAgICAgIHZhciBwaXhlbHMgPSBuZXcgVWludDhBcnJheSgxICogMSAq
IDQpOworICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIHBpeGVscyk7CisgICAgICAgIHJldHVybiBwaXhlbHM7CisgICAgfTsKKyAgICBm
dW5jdGlvbiB0ZXN0UGl4ZWwoYmxhY2tMaXN0LCB3aGl0ZUxpc3QpIHsKKyAgICAgICAgZnVuY3Rp
b24gdGVzdExpc3QobGlzdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIGZvciAodmFyIG4gPSAw
OyBuIDwgbGlzdC5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAgICAgIHZhciBsID0gbGlzdFtu
XTsKKyAgICAgICAgICAgICAgICB2YXIgeCA9IC1NYXRoLmZsb29yKGwgKiBjYW52YXMud2lkdGgg
LyAyKSArIGNhbnZhcy53aWR0aCAvIDI7CisgICAgICAgICAgICAgICAgdmFyIHkgPSAtTWF0aC5m
bG9vcihsICogY2FudmFzLmhlaWdodCAvIDIpICsgY2FudmFzLmhlaWdodCAvIDI7CisgICAgICAg
ICAgICAgICAgdmFyIHNvdXJjZSA9IHJlYWRMb2NhdGlvbih4LCB5KTsKKyAgICAgICAgICAgICAg
ICBpZiAoTWF0aC5hYnMoc291cmNlWzBdIC0gZXhwZWN0ZWQpID4gMikgeworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RM
aXN0KGJsYWNrTGlzdCwgMCkgJiYgdGVzdExpc3Qod2hpdGVMaXN0LCAyNTUpOworICAgIH07Cisg
ICAgZnVuY3Rpb24gdmVyaWZ5RHJhdyhkcmF3TnVtYmVyLCBzKSB7CisgICAgICAgIGdsLmNsZWFy
Q29sb3IoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAgICBnbC5kcmF3RWxlbWVudHMo
Z2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9JTlQsIDApOworCisgICAgICAgIHZhciBibGFj
a0xpc3QgPSBbXTsKKyAgICAgICAgdmFyIHdoaXRlTGlzdCA9IFtdOworICAgICAgICB2YXIgcG9p
bnRzID0gWzAuMCwgMC4yLCAwLjQsIDAuNiwgMC44LCAxLjBdOworICAgICAgICBmb3IgKHZhciBu
ID0gMDsgbiA8IHBvaW50cy5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAgaWYgKHBvaW50c1tu
XSA8PSBzKSB7CisgICAgICAgICAgICAgICAgYmxhY2tMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd2hpdGVMaXN0LnB1c2gocG9pbnRz
W25dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodGVzdFBpeGVsKGJs
YWNrTGlzdCwgd2hpdGVMaXN0KSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiRHJhdyAiICsg
ZHJhd051bWJlciArICIgcGFzc2VkIHBpeGVsIHRlc3QiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkRyYXcgIiArIGRyYXdOdW1iZXIgKyAiIGZhaWxlZCBwaXhl
bCB0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc2V0dXBEcmF3KDAuNSk7CisgICAg
dmVyaWZ5RHJhdygwLCAwLjUpOworfQorCitmdW5jdGlvbiBydW5JbmRleFZhbGlkYXRpb25UZXN0
cygpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIHZlcmlm
aWVzIHRoZSBjb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzIik7CisKKyAgICBmdW5jdGlvbiBzaXpl
SW5CeXRlcyh0eXBlKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgIGNhc2UgZ2wuQllU
RToKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
ICBjYXNlIGdsLlNIT1JUOgorICAgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVDoKKyAgICAgICAg
cmV0dXJuIDI7CisgICAgICBjYXNlIGdsLklOVDoKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfSU5U
OgorICAgICAgY2FzZSBnbC5GTE9BVDoKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgICBkZWZhdWx0
OgorICAgICAgICB0aHJvdyAidW5rbm93biB0eXBlIjsKKyAgICAgIH0KKyAgICB9CisKKyAgICB2
YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOworCisgICAgLy8gMyB2ZXJ0aWNl
cyA9PiAxIHRyaWFuZ2xlLCBpbnRlcmxlYXZlZCBkYXRhCisgICAgdmFyIGRhdGFDb21wbGV0ZSA9
IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEsIDEsIDEsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
IDAsIDFdKTsKKyAgICB2YXIgZGF0YUluY29tcGxldGUgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAw
LCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAs
IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwg
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDFdKTsK
KyAgICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MzJBcnJheShbMCwgMSwgMl0pOworCisgICAgZGVi
dWcoIlRlc3Rpbmcgd2l0aCB2YWxpZCBpbmRpY2VzIik7CisKKyAgICB2YXIgYnVmZmVyQ29tcGxl
dGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgYnVmZmVyQ29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBk
YXRhQ29tcGxldGUsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB2YXIgZWxlbWVudHMgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBl
bGVtZW50cyk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5k
aWNlcywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAg
dmFyIHZlcnRleExvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJhX3ZlcnRleCIp
OworICAgIHZhciBub3JtYWxMb2MgPSBnbC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAiYV9u
b3JtYWwiKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwgZ2wuRkxP
QVQsIGZhbHNlLCA3ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAwKTsKKyAgICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSh2ZXJ0ZXhMb2MpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
bm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCks
IDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KG5vcm1hbExvYyk7CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRy
YXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCknKTsKKyAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHdp
dGggb3V0LW9mLXJhbmdlIGluZGljZXMiKTsKKworICAgIHZhciBidWZmZXJJbmNvbXBsZXRlID0g
Z2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1
ZmZlckluY29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkYXRh
SW5jb21wbGV0ZSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
dmVydGV4TG9jLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCks
IDApOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZlcnRleExvYyk7CisgICAgZ2wu
ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7CisgICAgZGVidWcoIkVuYWJsZSB2
ZXJ0aWNlcywgdmFsaWQiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
KyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywg
Z2wuVU5TSUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOworICAgIGRlYnVnKCJFbmFibGUgbm9ybWFscywgb3V0LW9mLXJhbmdlIik7CisgICAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNp
emVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CisgICAgZ2wu
ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRz
KGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOworCisgICAgZGVidWcoIlRlc3Qgd2l0aCBl
bmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjdXJyZW50IHByb2dyYW0i
KTsKKworICAgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShub3JtYWxMb2MpOworICAgIHZh
ciBleHRyYUxvYyA9IE1hdGgubWF4KHZlcnRleExvYywgbm9ybWFsTG9jKSArIDE7CisgICAgZ2wu
ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZXh0cmFMb2MpOworICAgIGRlYnVnKCJFbmFibGUgYW4g
ZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbCIpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJ
QU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTik7CisgICAgZGVidWcoIkVuYWJsZSBhbiBleHRyYSBhdHRy
aWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsKKyAgICBnbC52ZXJ0ZXhBdHRy
aWJQb2ludGVyKGV4dHJhTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhn
bC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVu
dHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZGVidWcoIlBh
c3MgbGFyZ2UgbmVnYXRpdmUgaW5kZXggdG8gdmVydGV4QXR0cmliUG9pbnRlciIpOworICAgIGds
LnZlcnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBz
aXplSW5CeXRlcyhnbC5GTE9BVCksIC0yMDAwMDAwMDAwICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQp
KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05F
RF9JTlQsIDApJyk7Cit9CisKK2Z1bmN0aW9uIHJ1bkNvcGllc0luZGljZXNUZXN0cygpIHsKKyAg
ICBkZWJ1ZygiVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVyaW5nIGJ1
ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMiKTsKKworICAgIHZhciBwcm9ncmFtID0g
bG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwor
ICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dmVydGV4T2JqZWN0KTsKKyAgICAvLyA0IHZlcnRpY2VzIC0+IDIgdHJpYW5nbGVzCisgICAgZ2wu
YnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAsMCwgMCwx
LDAsIDEsMCwwLCAxLDEsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworICAgIHZhciBpbmRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworCisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgaW5kZXhPYmplY3QpOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQz
MkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pOworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGds
LlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhn
bC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMo
Z2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKKyAgICBpbmRpY2Vz
WzBdID0gMjsKKyAgICBpbmRpY2VzWzVdID0gMTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBn
bC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5J
TlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwg
Z2wuVU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQs
IGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKK30KKworZnVuY3Rpb24gcnVuUmVzaXplZEJ1ZmZlclRl
c3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgdXBkYXRpbmcgdGhlIHNpemUgb2YgYSB2ZXJ0
ZXggYnVmZmVyIGlzIHByb3Blcmx5IG5vdGljZWQgYnkgdGhlIFdlYkdMIGltcGxlbWVudGF0aW9u
LiIpOworCisgICAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oZ2wsICJ2cyIsICJmcyIsIFsi
dlBvc2l0aW9uIiwgInZDb2xvciJdKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAiYWZ0ZXIgaW5pdGlhbGl6YXRpb24iKTsKKworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVy
dGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0
MzJBcnJheSgKKyAgICAgICAgWy0xLDEsMCwgMSwxLDAsIC0xLC0xLDAsCisgICAgICAgICAtMSwt
MSwwLCAxLDEsMCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZM
T0FULCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImFmdGVyIHZlcnRleCBzZXR1cCIpOworCisgICAgdmFyIHRleENvb3JkT2JqZWN0ID0gZ2wuY3Jl
YXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRleENvb3Jk
T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJB
cnJheSgKKyAgICAgICAgWzAsMCwgMSwwLCAwLDEsCisgICAgICAgICAwLDEsIDEsMCwgMSwxXSks
IGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKKyAg
ICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Cisg
ICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHRleHR1cmUgY29vcmQg
c2V0dXAiKTsKKworICAgIC8vIE5vdyByZXNpemUgdGhlc2UgYnVmZmVycyBiZWNhdXNlIHdlIHdh
bnQgdG8gY2hhbmdlIHdoYXQgd2UncmUgZHJhd2luZy4KKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIC0xLDEsMCwgMSwxLDAsIC0xLC0xLDAs
IDEsLTEsMCwKKyAgICAgICAgLTEsMSwwLCAxLDEsMCwgLTEsLTEsMCwgMSwtMSwwXSksIGdsLlNU
QVRJQ19EUkFXKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIg
dmVydGV4IHJlZGVmaW5pdGlvbiIpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCB0ZXhDb29yZE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5l
dyBVaW50OEFycmF5KFsKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDI1NSwgMCwg
MCwgMjU1LAorICAgICAgICAyNTUsIDAsIDAsIDI1NSwKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUs
CisgICAgICAgIDAsIDI1NSwgMCwgMjU1LAorICAgICAgICAwLCAyNTUsIDAsIDI1NSwKKyAgICAg
ICAgMCwgMjU1LCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1XSksIGdsLlNUQVRJQ19E
UkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLlVOU0lHTkVEX0JZVEUs
IGZhbHNlLCAwLCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0
ZXIgdGV4dHVyZSBjb29yZGluYXRlIC8gY29sb3IgcmVkZWZpbml0aW9uIik7CisKKyAgICB2YXIg
bnVtUXVhZHMgPSAyOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KG51bVF1YWRz
ICogNik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVF1YWRzOyArK2lpKSB7CisgICAg
ICAgIHZhciBvZmZzZXQgPSBpaSAqIDY7CisgICAgICAgIHZhciBxdWFkID0gKGlpID09IChudW1R
dWFkcyAtIDEpKSA/IDQgOiAwOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDBdID0gcXVhZCAr
IDA7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgMV0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5k
aWNlc1tvZmZzZXQgKyAyXSA9IHF1YWQgKyAyOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDNd
ID0gcXVhZCArIDI7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgNF0gPSBxdWFkICsgMTsKKyAg
ICAgICAgaW5kaWNlc1tvZmZzZXQgKyA1XSA9IHF1YWQgKyAzOworICAgIH0KKyAgICB2YXIgaW5k
ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVN
RU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJhZnRlciBzZXR0aW5nIHVwIGluZGljZXMiKTsKKyAg
ICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCBudW1RdWFkcyAqIDYsIGdsLlVOU0lHTkVE
X0lOVCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIGRy
YXdpbmciKTsKK30KKworZnVuY3Rpb24gcnVuVmVyaWZpZXNUb29NYW55SW5kaWNlc1Rlc3RzKCkg
eworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdF
bGVtZW50cyBkb2VzIG5vdCBleGFtaW5lIHRvbyBtYW55IGluZGljZXMiKTsKKworICAgIHZhciBw
cm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQcm9ncmFtKHBy
b2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBn
bC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmli
QXJyYXkoMSk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVj
dCk7CisgICAgLy8gNCB2ZXJ0aWNlcyAtPiAyIHRyaWFuZ2xlcworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLDAsIDAsMSwwLCAxLDAsMCwg
MSwxLDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAs
IDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisKKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5j
cmVhdGVCdWZmZXIoKTsKKworICAgIGRlYnVnKCJUZXN0IG91dCBvZiByYW5nZSBpbmRpY2VzIikK
KyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7
CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFVpbnQzMkFy
cmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRyYXdFbGVtZW50cyhn
bC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA0KSIpOworICAgIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMo
Z2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgMCkiKTsKKyAgICBzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wuZHJhd0VsZW1lbnRz
KGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDgpIik7Cit9CisKK2Z1bmN0
aW9uIHJ1bkNyYXNoV2l0aEJ1ZmZlclN1YkRhdGFUZXN0cygpIHsKKyAgICBkZWJ1ZygnVmVyaWZp
ZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJT
dWJEYXRhIGRvZXMgbm90IGNyYXNoLicpCisKKyAgICB2YXIgZWxlbWVudEJ1ZmZlciA9IGdsLmNy
ZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IGVsZW1lbnRCdWZmZXIpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZG
RVIsIDI1NiwgZ2wuU1RBVElDX0RSQVcpOworICAgIHZhciBkYXRhID0gbmV3IFVpbnQzMkFycmF5
KDEyNyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgNjQs
IGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgImFmdGVy
IGF0dGVtcHRpbmcgdG8gdXBkYXRlIGEgYnVmZmVyIG91dHNpZGUgb2YgdGhlIGFsbG9jYXRlZCBi
b3VuZHMiKTsKKyAgICB0ZXN0UGFzc2VkKCJidWZmZXJTdWJEYXRhLCB3aGVuIGJ1ZmZlciBvYmpl
Y3Qgd2FzIGluaXRpYWxpemVkIHdpdGggbnVsbCwgZGlkIG5vdCBjcmFzaCIpOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFiNTcwNTdjNmNmODY2NjhiYTc3ZGE4OGRjMDVkZGUx
ZTUyNmM4ODMuLjQ1YWJhMTBhOWU4ZDk0NWJkYTg4NzcyZWRlOTEzNGRiYzQ4ZDFjYmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDAy
OSwzICs0MDI5LDcgQEAgd2Via2l0Lm9yZy9iLzk5MDg5IHRyYW5zZm9ybXMvM2QvZ2VuZXJhbC9w
ZXJzcGVjdGl2ZS11bml0cy5odG1sIFsgUGFzcyBJbWFnZU9ubHkKIHdlYmtpdC5vcmcvYi85OTEz
NCBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbCBb
IFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzk5MTM4IFsg
U25vd0xlb3BhcmQgXSBzdmcvY3VzdG9tL2ZvcmVpZ24tb2JqZWN0LXNrZXcuc3ZnIFsgUGFzcyBJ
bWFnZU9ubHlGYWlsdXJlIF0KKworIyBFeHBlY3RlZCB0byBmYWlsIHVudGlsIFdlYkdMIGV4dGVu
c2lvbiBpbXBsZW1lbnRhdGlvbiBsYW5kcword2Via2l0Lm9yZy9iLzk4MjU3IGZhc3QvY2FudmFz
L3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCit3ZWJr
aXQub3JnL2IvOTgyNTcgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMv
d2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjIwODY1YThlZTRiOTE3
NTdjZDBkOTJiMjcxZDA1NzM5ZGFmN2Y3ZS4uOGE1Y2RiNTIzYWNiZWE5NzZmNTFiMWEyMThmOTNi
OGM2M2YyYmM2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTM3MSw2ICszNzEsOSBAQCBmYXN0L2Nzcy9kcmFnZ2FibGUtcmVnaW9uLXBhcnNlci5odG1s
CiAjIGh0dHA6Ly93ZWJraXQub3JnL2IvOTY4MjgKIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0
ZXgtYXJyYXktb2JqZWN0Lmh0bWwKIAorIyBFeHBlY3RlZCB0byBmYWlsIHVudGlsIE9FU19lbGVt
ZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uIGlzIGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTgy
NTcgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgVEVTVFMgRVhQ
RUNURUQgVE8gRkFJTAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTBjMzhhOGI5ZjVhZmEyOTRi
NzI4MjA5OWEwN2NmYzcxOGMzMjk2Ni4uZWI0N2Y3MDk2OWVmYmFkYjE1YzAxMDBiMjY1OTZmZmFh
YTU1N2FjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEzMDksMyArMTMwOSw2IEBAIHdlYmtpdC5vcmcvYi85OTA5NiBmYXN0L2NhbnZhcy93ZWJnbC9h
cnJheWJ1ZmZlci10cmFuc2Zlci1vZi1jb250cm9sLmh0bWwgWyBGYWlsCiAKICMgVGltaW5nIG91
dCBvbiBNb3VudGFpbiBMaW9uIFdLMSByZWxlYXNlIHNvbWV0aW1lcwogd2Via2l0Lm9yZy9iLzk5
MjIxIGZhc3QvanMvcmFuZG9tLWFycmF5LWdjLXN0cmVzcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
KworIyBFeHBlY3RlZCB0byBmYWlsIHVudGlsIFdlYkdMIGV4dGVuc2lvbiBpbXBsZW1lbnRhdGlv
biBsYW5kcword2Via2l0Lm9yZy9iLzk4MjU3IGZhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50
LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlNGUz
OTA4YjIxM2MwN2M3Y2FjZGUzOTE5MmQ4MGJiMjU5MWE1M2RlLi4zMDI1ODRkZDc0OGZiZDk4MmVj
N2ZkNTM4MjMwMWE2Y2JhYzM0ZjBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTkxLDYgKzE5MSw3IEBAIGZhc3QvY2FudmFzL3dlYmdsL3ZpZXdwb3J0
LXVuY2hhbmdlZC11cG9uLXJlc2l6ZS5odG1sCiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1hcnJh
eS1pbnZhbGlkLXJhbmdlcy5odG1sCiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5o
dG1sCiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCitmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKIGZhc3QvaGFybmVzcy9v
dmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0
b3JlZC1mcm9tLWJmY2FjaGUuaHRtbAogZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1h
bGxvd3MtY2FjaGVkLWltYWdlLWxvYWQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168976</attachid>
            <date>2012-10-16 10:59:35 -0700</date>
            <delta_ts>2012-10-18 09:59:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97400-20121016105824.patch</filename>
            <type>text/plain</type>
            <size>61815</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ0ZGVkMWU0ZGRmMmM0
NGNjOGNhZGE4NTg2Mzc3ZTM0OGYwNGQ3NS4uNGZkYjJhZTIzNTc1ZjI5ZmFmODYwMDA2MGU1ZjM0
N2Q3N2ZhNDExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTEyICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xNiAgUmFwaGFlbCBL
dWJvIGRhIENvc3RhICA8cmFwaGFlbC5rdWJvLmRhLmNvc3RhQGludGVsLmNvbT4KIAogICAgICAg
ICBJbXBsZW1lbnQgdGVzdFJ1bm5lci5kdW1wU2VsZWN0aW9uUmVjdCgpIGluIFdlYktpdFRlc3RS
dW5uZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWZmNGY5ZDlkNDY0Yjg2NjU0M2IxZGZiYjBj
NzQ3NDY4ZDVjODk2Zi4uYTE5YzcwMzczMTdmMjNiZGZmYzJlYWM5NTE0MTJjNTkwYzcxM2YyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUyMiw2ICs1MjIsNyBAQCBTRVQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbAogICAgIGh0
bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwKICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5pZGwKKyAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbAog
ICAgIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFzL1VpbnQzMkFy
cmF5LmlkbAogICAgIGh0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCkBAIC0xNDgzLDYgKzE0ODQs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAKICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCiAgICAgaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCisgICAgaHRtbC9jYW52YXMvT0VTRWxl
bWVudEluZGV4VWludC5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAKICAgICBodG1sL2NhbnZh
cy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcApAQCAtMjUzNiw2ICsyNTM4LDcgQEAgSUYgKEVO
QUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5j
cHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvT0VT
RWxlbWVudEluZGV4VWludC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3Bw
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcApAQCAtMjU2MywxMiAr
MjU2NiwxNCBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFu
ZGFyZERlcml2YXRpdmVzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorICAgICAg
ICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICkKICAgICBMSVNUKEFQ
UEVORCBXZWJDb3JlX0lETF9GSUxFUwogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwKICAgICAg
ICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsCisgICAgICAgIGh0bWwvY2Fu
dmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGMxOTljNDY2YTAyYWIwMmNjYTdkNTg3M2MxNzkzYzQxMTc2
NzlkYS4uNjg1Y2Y2MmE1MmRkYzkwOWFiNTljYWI0OGJkOGQwMzdmYmJmMzQ5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzcsNiArMzc3LDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvSW50OEFycmF5LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNUZXh0dXJl
RmxvYXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggODRjOWQwNzc3MWVkMWEx
NzQ1NjY3MmUyNzFlMzMxYmNhNGU2ODU4ZS4uN2Y0NjgyN2ZlZWY3N2UxYTk1YzczZDk2OWIzZDJl
ZWM4NzU4MmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzAxLDYgKzMwMSw3
IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisg
ICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwgXAogICAgICQkUFdE
L2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM0NWY1
YzY4YWJkZGY0ZGE5YjZhYmI3NzFkNTQ4MjQxNGQwYzY0M2QuLjgxMjBjZTUwMzY1MjgyYTY5Nzhk
ZTc2MGIwODAwODcyOWMzMWRlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NTc5LDYgKzU3OSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU09FU1RleHR1cmVGbG9hdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
T0VTVmVydGV4QXJyYXlPYmplY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVu
dEluZGV4VWludC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRp
b0NvbXBsZXRpb25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT3NjaWxsYXRv
ci5jcHAgXApAQCAtMTUxOCw2ICsxNTIwLDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50
MTZBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsIFwKQEAgLTMxOTQsNiArMzE5
Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRl
eEFycmF5T2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRl
eFVpbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZmFl
YjgwYzRjYTc2MTRlNDI2NjM3MDQ2YTFiMDkwOTA2YjI0ZTZlLi4zMDRjNzUwYTZmMmMzNGJkODc4
MDYxYmVhNmU1NGJiYjdlNWNjNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM4OTEsNiArMzg5MSw3IEBA
IGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmggXAogICAgICAg
ICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKyAgICAgICAgaHRtbC9jYW52
YXMvT0VTRWxlbWVudEluZGV4VWludC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0
dXJlLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIFwKQEAgLTM5MjQs
NiArMzkyNSw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxv
YXQuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwK
KyAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAgXAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xV
bmlmb3JtTG9jYXRpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxYjc3ZDY3M2E2Mjg3YTg1YjIxZDVm
MzExNTQyM2I3MzUzMDgwOWM3Li4yN2E5MDUzZGUwOWM3MTFlMTRlZDRjMWIwMTQ0NjA1OThmZjkx
NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTYyLDYgKzExNjIsNyBAQAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50MTZB
cnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwnLApAQCAtNDMxMyw2ICs0MzE0
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oJywKKyAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9j
YW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTEFjdGl2ZUluZm8uaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
Y3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oJywKQEAgLTc3ODgs
NiArNzc5MSw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwJywKICAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVy
dGV4QXJyYXlPYmplY3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwJywKKyAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWlu
dC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTT3ZlcmZsb3dFdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggODdlYzgwZjFmZTYyODU1ZjYwOTEzZDcxMTg1YjRkYzA0YmZlODA1NC4uY2NkZDI4
MTRhODQ2MTFhZjNlODVlYWEzYWVlZTY4MzA0Yjk5NmE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk5Niw2ICsxOTk2LDEw
IEBACiAJCTdFMTJFOTEwMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJh
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
MTJFOTBFMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcCAq
LzsgfTsKIAkJN0UzM0NEMDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzNDRDAwMTI3RjM0
MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0UzN0VGMkUxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJl
c291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0Yu
Y3BwICovOyB9OworCQk3RTQ2RjZGQTE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5k
ZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwICov
OyB9OworCQk3RTQ2RjZGQjE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ2RjZG
OTE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi87IH07CisJCTdF
NUQ3QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKKwkJN0U1RDdBNzcxNjFE
M0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBP
RVNFbGVtZW50SW5kZXhVaW50LmggKi87IH07CiAJCTdFOTlBRjUxMEIxMzg0NjQ2OEZCMDFBNSAv
KiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRv
d0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHAgKi87IH07CiAJCTdFOTlBRjUzMEIxMzg0NjQ2OEZC
MDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBX
aW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3RUU2ODQ1RjEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVu
dGljYXRpb25DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgKi87
IH07CkBAIC05MjI5LDYgKzkyMzMsMTAgQEAKIAkJN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8q
IEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHA7IHBhdGggPSBmaWx0ZXJz
L0N1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXJnZVByaW9yaXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdFMzdFRjJEMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxv
YWRlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN1YnJlc291
cmNlTG9hZGVyQ0YuY3BwOyBwYXRoID0gY2YvU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHBhdGggPSBjYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNUQ3QTc0MTYxRDNG
OEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjUyMEIx
Mzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U5OUFGNTQwQjEzODQ2NDY4RkIw
MUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0
aW9uQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGlj
YXRpb25DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTEyOSw2ICsxNTEz
Nyw4IEBACiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdFNUQ3QTczMTYxRDNGOEYwMDg5
NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLywKKwkJCQk3RTVEN0E3NDE2MUQzRjhG
MDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICovLAogCQkJCTQ5RUVDRENDMTA1MDND
MjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAw
MDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAw
QTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAgLTE4NDc4LDYgKzE4
NDg4LDggQEAKIAkJCQlFNDQ2MTQxMTBDRDY4MjY5MDBGQURBNzUgLyogSlNNZWRpYUVycm9yLmgg
Ki8sCiAJCQkJMTA1OTQ1NzUxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVl
LmNwcCAqLywKIAkJCQkxMDU5NDU3OTE1QjQyQTQzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVt
VmFsdWUuaCAqLywKKwkJCQk3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50
SW5kZXhVaW50LmNwcCAqLywKKwkJCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNF
bGVtZW50SW5kZXhVaW50LmggKi8sCiAJCQkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpT
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8sCiAJCQkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovLAogCQkJCTZFQkYwRTc0MTJBOTg2
ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgKi8sCkBAIC0yNTU5OCw2ICsyNTYx
MCw4IEBACiAJCQkJNTE0QkM4NDMxNjFDRjA1QzAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzI4QkQ5RTE2MjUzNjk2MDBDNDBCNTYgLyogU2libGluZ1Ry
YXZlcnNhbFN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTFBOTkxMTYyNzQ2Q0Iw
MDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
N0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTdFNDZGNkZCMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRl
eFVpbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg3MDIsNiArMjg3MTYsOCBAQAogCQkJCTMxOTU1
QTg2MTYwRDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3Vy
Y2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0
IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0U0NkY2RkEx
NjI3QTJDQTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBmNGFmNTVkODI2YjZlYWZjZWZmMjU0MjBj
MDBiMWM3YTdmNDYyYjBlLi5jOTNmMzQwMWU3MDFmYjc0NjYxMTE0NTllZDQzMzhjOWM1MTc3OTMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
SlNIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKICNpbmNsdWRl
ICJKU0ludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU09FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNp
bmNsdWRlICJKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJKU09FU1RleHR1
cmVGbG9hdC5oIgogI2luY2x1ZGUgIkpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTU3LDYg
KzU4LDcgQEAKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNs
dWRlICJKU1dlYktpdENTU01hdHJpeC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiT0VTRWxlbWVudEluZGV4VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5oIgpAQCAtMjAwLDYgKzIwMiw4IEBAIHN0YXRpYyBKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJH
TEV4dGVuCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9u
KSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4VWludE5hbWU6Cisg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxl
bWVudEluZGV4VWludCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdSZW5kZXJlckluZm9OYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCAwNjM1NDk2OWQ0NGQzYzQ2YTU5
M2RkYTU1NGEzNWQyZjEwODY5NjZkLi40MTU2ODMyZDJkYzg0YTcyNDZiZTZkMjc1NjU1NTVlMjBk
NGVmZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJWOEludDE2QXJyYXkuaCIKICNpbmNsdWRlICJWOEludDMyQXJy
YXkuaCIKICNpbmNsdWRlICJWOEludDhBcnJheS5oIgorI2luY2x1ZGUgIlY4T0VTRWxlbWVudElu
ZGV4VWludC5oIgogI2luY2x1ZGUgIlY4T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1
ZGUgIlY4T0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiVjhPRVNWZXJ0ZXhBcnJheU9iamVj
dC5oIgpAQCAtMTkxLDYgKzE5MiwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRv
VjhPYmplY3QoV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiwgdjg6OkhhbmRsZTx2OAogICAgICAg
ICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5j
ZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4VWludE5hbWU6CisgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4
dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOworICAgICAgICByZWZlcmVuY2VOYW1l
ID0gIm9lc0VsZW1lbnRJbmRleFVpbnROYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CiAgICAgICAgIGV4dGVu
c2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4
dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1l
ID0gIndlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjlkZjBiYzE1
YzM5MTYxN2NkOTBiN2YyNGQ3NTg0MWNlMTIyMTk4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisK
KyNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworT0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludChXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQor
CitPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4VWludCgpCit7Cit9CisKK1dl
YkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIE9FU0VsZW1lbnRJbmRleFVpbnQ6OmdldE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiBPRVNFbGVtZW50SW5kZXhVaW50TmFtZTsKK30KKworUGFz
c093blB0cjxPRVNFbGVtZW50SW5kZXhVaW50PiBPRVNFbGVtZW50SW5kZXhVaW50OjpjcmVhdGUo
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgT0VTRWxlbWVudEluZGV4VWludChjb250ZXh0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmQ0Mjg3M2EyMDU0
ZDA1ODgzYTczOTM4MTE2ODNmOTE4ZWVlYmM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIE9FU0VsZW1lbnRJbmRleFVpbnRfaAorI2RlZmluZSBPRVNFbGVtZW50
SW5kZXhVaW50X2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBPRVNFbGVtZW50
SW5kZXhVaW50IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxPRVNFbGVtZW50SW5kZXhVaW50PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5PRVNFbGVtZW50SW5kZXhVaW50KCk7CisgICAgdmlydHVh
bCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBPRVNFbGVt
ZW50SW5kZXhVaW50KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT0VTRWxlbWVudEluZGV4VWludF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRhNTY0MDE1M2ZiNGY2NTFiMjIwNjUzZDI4YzUzM2FjZWVhZDk4MWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmlk
bApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBb
CisgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gT0VTRWxlbWVu
dEluZGV4VWludCB7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5oCmluZGV4IDY5NjhhMDJiNGI5OWFiYTg3YTRjZDIxNTgyMDM2NTg5NmYzYzgx
MjMuLmZmZWM2MTZjYWJmODEwZDZjZTAyNjY1MTc4NzdhMmI3ZjY1NTFmMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaApAQCAtNDQsNiArNDQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFdlYkdMRGVidWdTaGFkZXJzTmFtZSwKICAgICAgICAgV2ViS2l0V2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVENOYW1lLCAvLyBXRUJLSVRfIHByZWZpeCB1bnRpbCBleHRl
bnNpb24gaXMgb2ZmaWNpYWwKICAgICAgICAgV2ViS2l0V2ViR0xEZXB0aFRleHR1cmVOYW1lLCAv
LyBXRUJLSVRfIHByZWZpeCB1bnRpbCBleHRlbnNpb24gaXMgb2ZmaWNpYWwKKyAgICAgICAgT0VT
RWxlbWVudEluZGV4VWludE5hbWUsCiAgICAgfTsKIAogICAgIHZvaWQgcmVmKCkgeyBtX2NvbnRl
eHQtPnJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3NDlkNTE5MTRlZTMyYTE4Y2YxMWRkOGQwNDZkMjhh
Y2FmNWY2NmE0Li5mNGM3YWUxMjhiYjVkMzU5NzZlOTE3NzUwZDM4MDE0N2ZhZDE2MTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRl
ICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPRVNF
bGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgog
I2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5oIgogI2luY2x1ZGUgIk9FU1ZlcnRleEFycmF5T2Jq
ZWN0LmgiCkBAIC0xNjkwLDcgKzE2OTEsMTggQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlRWxlbWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHQKICAg
ICBpZiAob2Zmc2V0IDwgMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUKSB7CisgICAgaWYgKHR5cGUgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0lOVCkgeworICAgICAgICAvLyBGb3IgYW4gdW5z
aWduZWQgaW50IGFycmF5LCBvZmZzZXQgbXVzdCBiZSBkaXZpc2libGUgYnkgNCBmb3IgYWxpZ25t
ZW50IHJlYXNvbnMuCisgICAgICAgIGlmIChvZmZzZXQgJSA0KQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIC8vIE1ha2UgdW9mZnNldCBhbiBlbGVtZW50IG9mZnNldC4KKyAg
ICAgICAgb2Zmc2V0IC89IDQ7CisKKyAgICAgICAgR0MzRHNpemVpcHRyIG4gPSBlbGVtZW50QXJy
YXlCdWZmZXItPmJ5dGVMZW5ndGgoKSAvIDQ7CisgICAgICAgIGlmIChvZmZzZXQgPiBuIHx8IGNv
dW50ID4gbiAtIG9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2Ug
aWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUKSB7CiAgICAgICAg
IC8vIEZvciBhbiB1bnNpZ25lZCBzaG9ydCBhcnJheSwgb2Zmc2V0IG11c3QgYmUgZGl2aXNpYmxl
IGJ5IDIgZm9yIGFsaWdubWVudCByZWFzb25zLgogICAgICAgICBpZiAob2Zmc2V0ICUgMikKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3MDksNyArMTcyMSw3IEBAIGJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUVsZW1lbnRBcnJheVNpemUoR0MzRHNpemVpIGNvdW50
LCBHQzNEZW51bSB0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgaW50
JiBudW1FbGVtZW50c1JlcXVpcmVkKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZ25lZCYgbnVtRWxl
bWVudHNSZXF1aXJlZCkKIHsKICAgICAvLyBQZXJmb3JtcyBjb25zZXJ2YXRpdmUgdmFsaWRhdGlv
biBieSBjYWNoaW5nIGEgbWF4aW11bSBpbmRleCBvZgogICAgIC8vIHRoZSBnaXZlbiB0eXBlIHBl
ciBlbGVtZW50IGFycmF5IGJ1ZmZlci4gSWYgYWxsIG9mIHRoZSBib3VuZApAQCAtMTc0Niw2ICsx
NzU4LDE1IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgaW50JiBuCiAgICAgICAgICAgICAgICAgbWF4SW5k
ZXggPSBtYXgobWF4SW5kZXgsIHN0YXRpY19jYXN0PGludD4ocFtpXSkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfSU5UOiB7CisgICAgICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBudW1FbGVtZW50cyAvPSBzaXpl
b2YoR0MzRHVpbnQpOworICAgICAgICAgICAgY29uc3QgR0MzRHVpbnQqIHAgPSBzdGF0aWNfY2Fz
dDxjb25zdCBHQzNEdWludCo+KGJ1ZmZlci0+ZGF0YSgpKTsKKyAgICAgICAgICAgIGZvciAoR0Mz
RHNpemVpcHRyIGkgPSAwOyBpIDwgbnVtRWxlbWVudHM7IGkrKykKKyAgICAgICAgICAgICAgICBt
YXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihwW2ldKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xNzYyLDEwICsxNzgzLDEwIEBAIGJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0g
dHlwZSwgaW50JiBuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCiti
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNE
c2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCB1bnNpZ25lZCYg
bnVtRWxlbWVudHNSZXF1aXJlZCkKIHsKICAgICBBU1NFUlQoY291bnQgPj0gMCAmJiBvZmZzZXQg
Pj0gMCk7Ci0gICAgaW50IGxhc3RJbmRleCA9IC0xOworICAgIHVuc2lnbmVkIGxhc3RJbmRleCA9
IDA7CiAgICAgCiAgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBlbGVtZW50QXJyYXlCdWZmZXIgPSBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpOwogCkBAIC0x
NzgzLDcgKzE4MDQsMTYgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5k
ZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bQogICAgIHVuc2lnbmVkIGxv
bmcgdW9mZnNldCA9IG9mZnNldDsKICAgICB1bnNpZ25lZCBsb25nIG4gPSBjb3VudDsKIAotICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkgeworICAgIGlm
ICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9JTlQpIHsKKyAgICAgICAgLy8g
TWFrZSB1b2Zmc2V0IGFuIGVsZW1lbnQgb2Zmc2V0LgorICAgICAgICB1b2Zmc2V0IC89IHNpemVv
ZihHQzNEdWludCk7CisgICAgICAgIGNvbnN0IEdDM0R1aW50KiBwID0gc3RhdGljX2Nhc3Q8Y29u
c3QgR0MzRHVpbnQqPihlbGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpLT5k
YXRhKCkpICsgdW9mZnNldDsKKyAgICAgICAgd2hpbGUgKG4tLSA+IDApIHsKKyAgICAgICAgICAg
IGlmICgqcCA+IGxhc3RJbmRleCkKKyAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAqcDsKKyAg
ICAgICAgICAgICsrcDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHlwZSA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQpIHsKICAgICAgICAgLy8gTWFrZSB1b2Zmc2V0IGFu
IGVsZW1lbnQgb2Zmc2V0LgogICAgICAgICB1b2Zmc2V0IC89IHNpemVvZihHQzNEdXNob3J0KTsK
ICAgICAgICAgY29uc3QgR0MzRHVzaG9ydCogcCA9IHN0YXRpY19jYXN0PGNvbnN0IEdDM0R1c2hv
cnQqPihlbGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpLT5kYXRhKCkpICsg
dW9mZnNldDsKQEAgLTE4MDYsNyArMTgzNiw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0KICAg
ICByZXR1cm4gbnVtRWxlbWVudHNSZXF1aXJlZCA+IDA7CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKGludCBudW1FbGVtZW50c1JlcXVpcmVk
KQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5nU3RhdGUodW5z
aWduZWQgbnVtRWxlbWVudHNSZXF1aXJlZCkKIHsKICAgICBpZiAoIW1fY3VycmVudFByb2dyYW0p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4MjMsNyArMTg1Myw3IEBAIGJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKGludCBudW1FbGVtZW50c1Jl
cXVpcmVkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIExvb2sgaW4gZWFjaCBjb25z
dW1lZCB2ZXJ0ZXggYXR0cmliIChieSB0aGUgY3VycmVudCBwcm9ncmFtKSBhbmQgZmluZCB0aGUg
c21hbGxlc3QgYnVmZmVyIHNpemUKLSAgICBpbnQgc21hbGxlc3ROdW1FbGVtZW50cyA9IElOVF9N
QVg7CisgICAgdW5zaWduZWQgc21hbGxlc3ROdW1FbGVtZW50cyA9IFVJTlRfTUFYOwogICAgIGlu
dCBudW1BY3RpdmVBdHRyaWJMb2NhdGlvbnMgPSBtX2N1cnJlbnRQcm9ncmFtLT5udW1BY3RpdmVB
dHRyaWJMb2NhdGlvbnMoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUFjdGl2ZUF0dHJp
YkxvY2F0aW9uczsgKytpKSB7CiAgICAgICAgIGludCBsb2MgPSBtX2N1cnJlbnRQcm9ncmFtLT5n
ZXRBY3RpdmVBdHRyaWJMb2NhdGlvbihpKTsKQEAgLTE4MzQsNyArMTg2NCw3IEBAIGJvb2wgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKGludCBudW1FbGVtZW50
c1JlcXVpcmVkKQogICAgICAgICAgICAgICAgIC8vIEZvciB0aGUgbGFzdCBlbGVtZW50LCB3ZSB3
aWxsIG9ubHkgdG91Y2ggdGhlIGRhdGEgZm9yIHRoZQogICAgICAgICAgICAgICAgIC8vIGVsZW1l
bnQgYW5kIG5vdGhpbmcgYmV5b25kIGl0LgogICAgICAgICAgICAgICAgIGludCBieXRlc1JlbWFp
bmluZyA9IHN0YXRpY19jYXN0PGludD4oc3RhdGUuYnVmZmVyQmluZGluZy0+Ynl0ZUxlbmd0aCgp
IC0gc3RhdGUub2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBpbnQgbnVtRWxlbWVudHMgPSAwOwor
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bUVsZW1lbnRzID0gMDsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoc3RhdGUuc3RyaWRlID4gMCk7CiAgICAgICAgICAgICAgICAgaWYgKGJ5dGVzUmVt
YWluaW5nID49IHN0YXRlLmJ5dGVzUGVyRWxlbWVudCkKICAgICAgICAgICAgICAgICAgICAgbnVt
RWxlbWVudHMgPSAxICsgKGJ5dGVzUmVtYWluaW5nIC0gc3RhdGUuYnl0ZXNQZXJFbGVtZW50KSAv
IHN0YXRlLnN0cmlkZTsKQEAgLTE5MzQsNiArMTk2NCwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0Mz
RGVudQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEU6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQ6CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0lOVDoKKyAgICAgICAgaWYgKG1fb2Vz
RWxlbWVudEluZGV4VWludCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZHJhd0VsZW1lbnRzIiwg
ImludmFsaWQgdHlwZSIpOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImRyYXdF
bGVtZW50cyIsICJpbnZhbGlkIHR5cGUiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTk1NCw3ICsx
OTg5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRyYXdFbGVtZW50cyhHQzNEZW51
bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnUKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGludCBudW1FbGVtZW50cyA9IDA7CisgICAgdW5zaWduZWQgbnVtRWxlbWVudHMgPSAw
OwogICAgIGlmICghaXNFcnJvckdlbmVyYXRlZE9uT3V0T2ZCb3VuZHNBY2Nlc3NlcygpKSB7CiAg
ICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgdmFsaWQgcmVuZGVyaW5nIHN0YXRlCiAgICAgICAg
IGlmICghdmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKGNvdW50LCB0eXBlLCBzdGF0aWNfY2FzdDxH
QzNEaW50cHRyPihvZmZzZXQpKSkgewpAQCAtMjMxNSw2ICsyMzUwLDE0IEBAIFdlYkdMRXh0ZW5z
aW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVmVydGV4QXJyYXlPYmplY3QuZ2V0
KCk7CiAgICAgfQorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiT0VTX2VsZW1lbnRf
aW5kZXhfdWludCIpCisgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBw
b3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7CisgICAgICAgIGlmICghbV9vZXNF
bGVtZW50SW5kZXhVaW50KSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOworICAgICAgICAg
ICAgbV9vZXNFbGVtZW50SW5kZXhVaW50ID0gT0VTRWxlbWVudEluZGV4VWludDo6Y3JlYXRlKHRo
aXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0
KCk7CisgICAgfQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdM
X2xvc2VfY29udGV4dCIpCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBhZnRlciBhIGNl
cnRhaW4gZ3JhY2UgcGVyaW9kLgogICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAi
V0VCS0lUX2xvc2VfY29udGV4dCIpKSB7CkBAIC0yODE2LDYgKzI4NTksOCBAQCBWZWN0b3I8U3Ry
aW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7CiAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3ZlcnRl
eF9hcnJheV9vYmplY3QiKTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1
cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRf
V0VCR0xfbG9zZV9jb250ZXh0Iik7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
OjpzdXBwb3J0ZWQodGhpcykpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCAyNmZjNjZjNWI1ZmY4NTk2MGNmNjRj
OTNjMzcwY2JiMGViY2ZiODE0Li44NmViODI5ZjIyNzBjYTJiYWQwOWZmNDgzODliYWJhNGI4ZDY4
MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgT0VTU3Rh
bmRhcmREZXJpdmF0aXZlczsKIGNsYXNzIE9FU1RleHR1cmVGbG9hdDsKIGNsYXNzIE9FU1ZlcnRl
eEFycmF5T2JqZWN0OworY2xhc3MgT0VTRWxlbWVudEluZGV4VWludDsKIGNsYXNzIFdlYkdMQWN0
aXZlSW5mbzsKIGNsYXNzIFdlYkdMQnVmZmVyOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CkBA
IC0zNTgsMTIgKzM1OSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCB2YWxpZGF0ZUVsZW1lbnRBcnJh
eVNpemUoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7
CiAKICAgICAvLyBDb25zZXJ2YXRpdmUgYnV0IHF1aWNrIGluZGV4IHZhbGlkYXRpb24KLSAgICBi
b29sIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG51
bUVsZW1lbnRzUmVxdWlyZWQpOworICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0
aXZlKEdDM0RlbnVtIHR5cGUsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKTsKIAogICAg
IC8vIFByZWNpc2UgYnV0IHNsb3cgaW5kZXggdmFsaWRhdGlvbiAtLSBvbmx5IGRvbmUgaWYgY29u
c2VydmF0aXZlIGNoZWNrcyBmYWlsCi0gICAgYm9vbCB2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNl
KEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQsIGludCYg
bnVtRWxlbWVudHNSZXF1aXJlZCk7CisgICAgYm9vbCB2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNl
KEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQsIHVuc2ln
bmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKTsKICAgICAvLyBJZiBudW1FbGVtZW50cyA8PSAwLCB3
ZSBvbmx5IGNoZWNrIGlmIGVhY2ggZW5hYmxlZCB2ZXJ0ZXggYXR0cmlidXRlIGlzIGJvdW5kIHRv
IGEgYnVmZmVyLgotICAgIGJvb2wgdmFsaWRhdGVSZW5kZXJpbmdTdGF0ZShpbnQgbnVtRWxlbWVu
dHMpOworICAgIGJvb2wgdmFsaWRhdGVSZW5kZXJpbmdTdGF0ZSh1bnNpZ25lZCBudW1FbGVtZW50
cyk7CiAKICAgICBib29sIHZhbGlkYXRlV2ViR0xPYmplY3QoY29uc3QgY2hhciosIFdlYkdMT2Jq
ZWN0Kik7CiAKQEAgLTUwNSw2ICs1MDYsNyBAQCBwdWJsaWM6CiAgICAgT3duUHRyPE9FU1RleHR1
cmVGbG9hdD4gbV9vZXNUZXh0dXJlRmxvYXQ7CiAgICAgT3duUHRyPE9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXM+IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlczsKICAgICBPd25QdHI8T0VTVmVydGV4QXJy
YXlPYmplY3Q+IG1fb2VzVmVydGV4QXJyYXlPYmplY3Q7CisgICAgT3duUHRyPE9FU0VsZW1lbnRJ
bmRleFVpbnQ+IG1fb2VzRWxlbWVudEluZGV4VWludDsKICAgICBPd25QdHI8V2ViR0xMb3NlQ29u
dGV4dD4gbV93ZWJnbExvc2VDb250ZXh0OwogICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvPiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm87CiAgICAgT3duUHRyPFdlYkdMRGVidWdTaGFk
ZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbnNpb25zM0QuaAppbmRleCA0OGIyNmNlMTIyYThhYzJjZDc2MmQzYjY3OTFm
YWY4YmQyOTBiYjVhLi4yZjRjMTJjMDM5OTk5YmQ4N2EyM2FkNDdiY2VkZmViM2VhMDRjMWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaApA
QCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gICBHTF9PRVNfc3RhbmRhcmRfZGVyaXZh
dGl2ZXMKICAgICAvLyAgIEdMX09FU19yZ2I4X3JnYmE4CiAgICAgLy8gICBHTF9PRVNfdmVydGV4
X2FycmF5X29iamVjdAorICAgIC8vICAgR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludAogICAgIC8v
ICAgR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlCiAgICAgLy8gICBHTF9BUkJfdGV4
dHVyZV9yZWN0YW5nbGUgKG9ubHkgdGhlIHN1YnNldCByZXF1aXJlZCB0bwogICAgIC8vICAgICBp
bXBsZW1lbnQgSU9TdXJmYWNlIGJpbmRpbmc7IGl0J3MgcmVjb21tZW5kZWQgdG8gc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAppbmRleCBjY2NjZDM4YmY2YzllOGQ0MzZhMDgxZjk0
ZTI1ZTBkNzVmOWU0YjZjLi4yNWI5ZGIzODFjODQ3NTg5MDYzYTBiODI3ZDA2MDBkNmFiYzlmNzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcApAQCAtMTU1LDYgKzE1NSwxMCBAQCBib29s
IEV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1l
KQogICAgIGlmIChuYW1lID09ICJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAorICAgIC8vIERlc2t0b3AgR0wgYWx3YXlzIHN1cHBvcnRzIFVOU0lH
TkVEX0lOVCBpbmRpY2VzCisgICAgaWYgKG5hbWUgPT0gIkdMX09FU19lbGVtZW50X2luZGV4X3Vp
bnQiKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChuYW1lID09ICJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQogICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRl
bnNpb25zLmNvbnRhaW5zKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFlZGU1ZjUyNDk3NTE3NzVlYTk1NWI5MjBiNzkzYWFkZTkzNzI1MGMuLmZmZDUyYWE5
YjRmOWQzY2M1NjE3M2VkNWQ3MzhiYmFhOGY5YWQxNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMi0xMC0xMiAgQnJhbmRvbiBKb25lcyAgPGJham9uZXNAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgT0VTX2VsZW1lbnRfaW5kZXhfdWludCAvIFdFQktJVF9PRVNfZWxlbWVudF9p
bmRleF91aW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzQwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uIGNvbmZvcm1hbmNlIHRlc3Qg
ZnJvbSBLSFJPTk9TCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1p
bmRleC11aW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxMi0xMC0xNiAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgogCiAg
ICAgICAgIHVwZGF0ZSBleHBlY3RhdGlvbnMgcHJlcGFyaW5nIGZvciBza2lhIG9wdGltaXphdGlv
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQt
aW5kZXgtdWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtZWxlbWVudC1pbmRleC11aW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjUzYjk4NTQ5
ZDk4ZmU2ZTI1ZTg0NDRkZGMxYzgzZTBmZWM5ODgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2MiBAQAorVGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIGZvciBkcmF3
RWxlbWVudHMgZG9lcyBub3QgZXhhbWluZSB0b28gbWFueSBpbmRpY2VzCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFdlYkdMIGNvbnRleHQgZXhpc3RzCitQQVNTIFN1Y2Nl
c3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uCitQQVNTIE9F
U19lbGVtZW50X2luZGV4X3VpbnQgbGlzdGVkIGFzIHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9u
IHN1Y2NlZWRlZAorVGVzdCB0aGF0IGRyYXdzIHdpdGggdW5zaWduZWQgaW50ZWdlciBpbmRpY2Vz
IHByb2R1Y2UgdGhlIGV4cGVjdGVkIHJlc3VsdHMKK1BBU1MgRHJhdyAwIHBhc3NlZCBwaXhlbCB0
ZXN0CitUZXN0aW5nIHdpdGggdmFsaWQgaW5kaWNlcworUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVt
ZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitUZXN0aW5nIHdp
dGggb3V0LW9mLXJhbmdlIGluZGljZXMKK0VuYWJsZSB2ZXJ0aWNlcywgdmFsaWQKK1BBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnbC5kcmF3RWxlbWVu
dHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApIGlzIHVuZGVmaW5lZC4KK1BB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorRW5hYmxlIG5vcm1h
bHMsIG91dC1vZi1yYW5nZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVE
X0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfT1BFUkFUSU9OIDogCitUZXN0IHdpdGggZW5hYmxlZCBhdHRyaWJ1dGUgdGhhdCBk
b2VzIG5vdCBiZWxvbmcgdG8gY3VycmVudCBwcm9ncmFtCitFbmFibGUgYW4gZXh0cmEgYXR0cmli
dXRlIHdpdGggbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lO
VCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfT1BFUkFUSU9OIDogCitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggaW5zdWZm
aWNpZW50IGRhdGEgYnVmZmVyCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdO
RURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQYXNzIGxhcmdlIG5lZ2F0aXZlIGluZGV4IHRvIHZl
cnRleEF0dHJpYlBvaW50ZXIKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX1ZBTFVFIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVO
U0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFs
d2F5cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMKK1BB
U1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQs
IDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdF
bGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0
ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVk
IGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuZHJhd0VsZW1l
bnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBl
eHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklB
TkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wg
ZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVy
cm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1Rlc3QgdGhhdCB1cGRhdGluZyB0aGUgc2l6ZSBvZiBh
IHZlcnRleCBidWZmZXIgaXMgcHJvcGVybHkgbm90aWNlZCBieSB0aGUgV2ViR0wgaW1wbGVtZW50
YXRpb24uCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRl
ciBpbml0aWFsaXphdGlvbgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogYWZ0ZXIgdmVydGV4IHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3JkIHNldHVwCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB2ZXJ0ZXggcmVkZWZpbml0aW9uCitQ
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJl
IGNvb3JkaW5hdGUgLyBjb2xvciByZWRlZmluaXRpb24KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIHNldHRpbmcgdXAgaW5kaWNlcworUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgZHJhd2luZworVGVzdCBv
dXQgb2YgcmFuZ2UgaW5kaWNlcworUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RS
SVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBO
T19FUlJPUi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5V
TlNJR05FRF9JTlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVS
QVRJT04uCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5T
SUdORURfSU5ULCA4KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFU
SU9OLgorVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdp
dGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNoLgorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiBhZnRlciBhdHRlbXB0aW5nIHRvIHVwZGF0ZSBh
IGJ1ZmZlciBvdXRzaWRlIG9mIHRoZSBhbGxvY2F0ZWQgYm91bmRzCitQQVNTIGJ1ZmZlclN1YkRh
dGEsIHdoZW4gYnVmZmVyIG9iamVjdCB3YXMgaW5pdGlhbGl6ZWQgd2l0aCBudWxsLCBkaWQgbm90
IGNyYXNoCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0aGVy
ZSBzaG91bGQgYmUgbm8gZXJyb3JzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YzkyODQ0OTBiNDFkYTA5NDcyYmFhZGM3MTU3Yjc0MmUzMjkxMTE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVs
ZW1lbnQtaW5kZXgtdWludC5odG1sCkBAIC0wLDAgKzEsMzk2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNh
bnZhcyBpZD0iY2FudmFzIiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPiA8L2Nh
bnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIE9FU19lbGVtZW50X2lu
ZGV4X3VpbnQgZXh0ZW5zaW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7CisKK2RlYnVnKCIiKTsK
KwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwor
dmFyIGV4dCA9IG51bGw7Cit2YXIgdmFvID0gbnVsbDsKKworaWYgKCFnbCkgeworICAgIHRlc3RG
YWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVz
dFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFF1ZXJ5IHRoZSBleHRl
bnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQKKyAgICBl
eHQgPSBnbC5nZXRFeHRlbnNpb24oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKKyAgICBpZiAo
IWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBPRVNfZWxlbWVudF9pbmRleF91aW50IHN1
cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3QoZmFs
c2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFi
bGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uIik7CisKKyAgICAgICAgcnVuU3Vw
cG9ydGVkVGVzdCh0cnVlKTsKKyAgICAgICAgcnVuRHJhd1Rlc3RzKCk7CisKKyAgICAgICAgLy8g
VGhlc2UgdGVzdHMgYXJlIHR3ZWFrZWQgZHVwbGljYXRlcyBvZiB0aGUgYnVmZmVycy9pbmRleC12
YWxpZGF0aW9uKiB0ZXN0cworICAgICAgICAvLyB1c2luZyB1bnNpZ25lZCBpbnQgaW5kaWNlcyB0
byBlbnN1cmUgdGhhdCBiZWhhdmlvciByZW1haW5zIGNvbnNpc3RlbnQKKyAgICAgICAgcnVuSW5k
ZXhWYWxpZGF0aW9uVGVzdHMoKTsKKyAgICAgICAgcnVuQ29waWVzSW5kaWNlc1Rlc3RzKCk7Cisg
ICAgICAgIHJ1blJlc2l6ZWRCdWZmZXJUZXN0cygpOworICAgICAgICBydW5WZXJpZmllc1Rvb01h
bnlJbmRpY2VzVGVzdHMoKTsKKyAgICAgICAgcnVuQ3Jhc2hXaXRoQnVmZmVyU3ViRGF0YVRlc3Rz
KCk7CisKKyAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNo
b3VsZCBiZSBubyBlcnJvcnMiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1blN1cHBvcnRlZFRl
c3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0
ZWRFeHRlbnNpb25zKCk7CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9mKCJPRVNfZWxlbWVudF9p
bmRleF91aW50IikgPj0gMCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCBsaXN0ZWQgYXMgc3Vw
cG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IGxpc3RlZCBhcyBz
dXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxz
ZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBn
ZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVk
IGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworZnVuY3Rpb24gcnVuRHJhd1Rlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRo
YXQgZHJhd3Mgd2l0aCB1bnNpZ25lZCBpbnRlZ2VyIGluZGljZXMgcHJvZHVjZSB0aGUgZXhwZWN0
ZWQgcmVzdWx0cyIpOworICAgIAorICAgIGNhbnZhcy53aWR0aCA9IDUwOyBjYW52YXMuaGVpZ2h0
ID0gNTA7CisgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0
KTsKKyAgICAKKyAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJv
Z3JhbShnbCk7CisKKyAgICBmdW5jdGlvbiBzZXR1cERyYXcocykgeworICAgICAgICAvLyBDcmVh
dGUgYSB2ZXJ0ZXggYnVmZmVyIHRoYXQgY2Fubm90IGJlIGZ1bGx5IGluZGV4ZWQgdmlhIHNob3J0
cworICAgICAgICB2YXIgcXVhZEFycmF5TGVuID0gNjU1MzcgKiAzOworICAgICAgICB2YXIgcXVh
ZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShxdWFkQXJyYXlMZW4pOworICAgICAgICAKKyAgICAg
ICAgLy8gTGVhdmUgYWxsIGJ1dCB0aGUgbGFzdCA0IHZhbHVlcyB6ZXJvLWVkIG91dAorICAgICAg
ICB2YXIgaWR4ID0gcXVhZEFycmF5TGVuIC0gMTI7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQg
dGhlIGxhc3QgNCB2YWx1ZXMgdG8gYSBxdWFkCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAx
LjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMS4wICogczsKKyAgICAgICAgcXVh
ZEFycmF5W2lkeCsrXSA9IDAuMDsKKworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAq
IHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJy
YXlbaWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAtMS4wICogczsK
KyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IC0xLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlb
aWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAg
ICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgr
K10gPSAwLjA7CisKKyAgICAgICAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsK
KyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHF1YWRBcnJheSwgZ2wuU1RB
VElDX0RSQVcpOworCisgICAgICAgIC8vIENyZWF0ZSBhbiB1bnNpZ25lZCBpbnQgaW5kZXggYnVm
ZmVyIHRoYXQgaW5kZXhlcyB0aGUgbGFzdCA0IHZlcnRpY2VzCisgICAgICAgIHZhciBiYXNlSW5k
ZXggPSAocXVhZEFycmF5TGVuIC8gMykgLSA0OworCisgICAgICAgIHZhciBpbmRleE9iamVjdCA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJS
QVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50MzJBcnJheShbCisgICAgICAgICAgICBiYXNlSW5kZXgg
KyAwLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMSwKKyAgICAgICAgICAgIGJhc2VJbmRleCAr
IDIsCisgICAgICAgICAgICBiYXNlSW5kZXggKyAyLAorICAgICAgICAgICAgYmFzZUluZGV4ICsg
MywKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDBdKSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAg
ICAgIHZhciBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IDA7CisgICAgICAgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KG9wdF9wb3NpdGlvbkxvY2F0aW9uKTsKKyAgICAgICAgZ2wudmVydGV4QXR0
cmliUG9pbnRlcihvcHRfcG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAw
KTsKKyAgICB9OworICAgIGZ1bmN0aW9uIHJlYWRMb2NhdGlvbih4LCB5KSB7CisgICAgICAgIHZh
ciBwaXhlbHMgPSBuZXcgVWludDhBcnJheSgxICogMSAqIDQpOworICAgICAgICBnbC5yZWFkUGl4
ZWxzKHgsIHksIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisgICAg
ICAgIHJldHVybiBwaXhlbHM7CisgICAgfTsKKyAgICBmdW5jdGlvbiB0ZXN0UGl4ZWwoYmxhY2tM
aXN0LCB3aGl0ZUxpc3QpIHsKKyAgICAgICAgZnVuY3Rpb24gdGVzdExpc3QobGlzdCwgZXhwZWN0
ZWQpIHsKKyAgICAgICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbGlzdC5sZW5ndGg7IG4rKykg
eworICAgICAgICAgICAgICAgIHZhciBsID0gbGlzdFtuXTsKKyAgICAgICAgICAgICAgICB2YXIg
eCA9IC1NYXRoLmZsb29yKGwgKiBjYW52YXMud2lkdGggLyAyKSArIGNhbnZhcy53aWR0aCAvIDI7
CisgICAgICAgICAgICAgICAgdmFyIHkgPSAtTWF0aC5mbG9vcihsICogY2FudmFzLmhlaWdodCAv
IDIpICsgY2FudmFzLmhlaWdodCAvIDI7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHJl
YWRMb2NhdGlvbih4LCB5KTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoc291cmNlWzBd
IC0gZXhwZWN0ZWQpID4gMikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RMaXN0KGJsYWNrTGlzdCwgMCkgJiYgdGVz
dExpc3Qod2hpdGVMaXN0LCAyNTUpOworICAgIH07CisgICAgZnVuY3Rpb24gdmVyaWZ5RHJhdyhk
cmF3TnVtYmVyLCBzKSB7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMS4wLCAxLjAsIDEuMCwgMS4w
KTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZF
Ul9CSVQpOworICAgICAgICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJ
R05FRF9JTlQsIDApOworCisgICAgICAgIHZhciBibGFja0xpc3QgPSBbXTsKKyAgICAgICAgdmFy
IHdoaXRlTGlzdCA9IFtdOworICAgICAgICB2YXIgcG9pbnRzID0gWzAuMCwgMC4yLCAwLjQsIDAu
NiwgMC44LCAxLjBdOworICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IHBvaW50cy5sZW5ndGg7
IG4rKykgeworICAgICAgICAgICAgaWYgKHBvaW50c1tuXSA8PSBzKSB7CisgICAgICAgICAgICAg
ICAgYmxhY2tMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgd2hpdGVMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBpZiAodGVzdFBpeGVsKGJsYWNrTGlzdCwgd2hpdGVMaXN0KSkgewor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiRHJhdyAiICsgZHJhd051bWJlciArICIgcGFzc2VkIHBp
eGVsIHRlc3QiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkRy
YXcgIiArIGRyYXdOdW1iZXIgKyAiIGZhaWxlZCBwaXhlbCB0ZXN0Iik7CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgc2V0dXBEcmF3KDAuNSk7CisgICAgdmVyaWZ5RHJhdygwLCAwLjUpOworfQor
CitmdW5jdGlvbiBydW5JbmRleFZhbGlkYXRpb25UZXN0cygpIHsKKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIHZlcmlmaWVzIHRoZSBjb3JyZWN0IG51bWJlciBv
ZiBpbmRpY2VzIik7CisKKyAgICBmdW5jdGlvbiBzaXplSW5CeXRlcyh0eXBlKSB7CisgICAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICAgIGNhc2UgZ2wuQllURToKKyAgICAgIGNhc2UgZ2wuVU5TSUdO
RURfQllURToKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICBjYXNlIGdsLlNIT1JUOgorICAgICAg
Y2FzZSBnbC5VTlNJR05FRF9TSE9SVDoKKyAgICAgICAgcmV0dXJuIDI7CisgICAgICBjYXNlIGds
LklOVDoKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UOgorICAgICAgY2FzZSBnbC5GTE9BVDoK
KyAgICAgICAgcmV0dXJuIDQ7CisgICAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAidW5rbm93
biB0eXBlIjsKKyAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFy
ZFByb2dyYW0oZ2wpOworCisgICAgLy8gMyB2ZXJ0aWNlcyA9PiAxIHRyaWFuZ2xlLCBpbnRlcmxl
YXZlZCBkYXRhCisgICAgdmFyIGRhdGFDb21wbGV0ZSA9IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAs
IDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDEsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDFdKTsKKyAgICB2YXIgZGF0YUlu
Y29tcGxldGUgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAwLCAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDFdKTsKKyAgICB2YXIgaW5kaWNlcyA9IG5ldyBV
aW50MzJBcnJheShbMCwgMSwgMl0pOworCisgICAgZGVidWcoIlRlc3Rpbmcgd2l0aCB2YWxpZCBp
bmRpY2VzIik7CisKKyAgICB2YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsK
KyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyQ29tcGxldGUpOworICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkYXRhQ29tcGxldGUsIGdsLlNUQVRJQ19E
UkFXKTsKKyAgICB2YXIgZWxlbWVudHMgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5k
QnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBlbGVtZW50cyk7CisgICAgZ2wuYnVmZmVy
RGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOwor
ICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgdmFyIHZlcnRleExvYyA9IGdsLmdldEF0
dHJpYkxvY2F0aW9uKHByb2dyYW0sICJhX3ZlcnRleCIpOworICAgIHZhciBub3JtYWxMb2MgPSBn
bC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAiYV9ub3JtYWwiKTsKKyAgICBnbC52ZXJ0ZXhB
dHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICogc2l6ZUluQnl0
ZXMoZ2wuRkxPQVQpLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh2ZXJ0ZXhM
b2MpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwg
ZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9B
VCkpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7CisgICAgc2hv
dWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZS
QU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMs
IDMsIGdsLlVOU0lHTkVEX0lOVCwgMCknKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdlIGluZGljZXMi
KTsKKworICAgIHZhciBidWZmZXJJbmNvbXBsZXRlID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlckluY29tcGxldGUpOworICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkYXRhSW5jb21wbGV0ZSwgZ2wuU1RBVElDX0RS
QVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodmVydGV4TG9jLCA0LCBnbC5GTE9BVCwg
ZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDApOworICAgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHZlcnRleExvYyk7CisgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5
KG5vcm1hbExvYyk7CisgICAgZGVidWcoIkVuYWJsZSB2ZXJ0aWNlcywgdmFsaWQiKTsKKyAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgn
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScpOwor
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCJFbmFibGUg
bm9ybWFscywgb3V0LW9mLXJhbmdlIik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihub3Jt
YWxMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAq
IHNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
bm9ybWFsTG9jKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBz
aG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5T
SUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04pOworCisgICAgZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRv
ZXMgbm90IGJlbG9uZyB0byBjdXJyZW50IHByb2dyYW0iKTsKKworICAgIGdsLmRpc2FibGVWZXJ0
ZXhBdHRyaWJBcnJheShub3JtYWxMb2MpOworICAgIHZhciBleHRyYUxvYyA9IE1hdGgubWF4KHZl
cnRleExvYywgbm9ybWFsTG9jKSArIDE7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
ZXh0cmFMb2MpOworICAgIGRlYnVnKCJFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVs
bCIpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJl
VW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9J
TlQsIDApJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7
CisgICAgZGVidWcoIkVuYWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQg
ZGF0YSBidWZmZXIiKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGV4dHJhTG9jLCAzLCBn
bC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRl
cyhnbC5GTE9BVCkpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAg
IHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5V
TlNJR05FRF9JTlQsIDApJyk7CisgICAgZGVidWcoIlBhc3MgbGFyZ2UgbmVnYXRpdmUgaW5kZXgg
dG8gdmVydGV4QXR0cmliUG9pbnRlciIpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIobm9y
bWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIC0y
MDAwMDAwMDAwICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKTsKKyAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7Cit9CisKK2Z1bmN0
aW9uIHJ1bkNvcGllc0luZGljZXNUZXN0cygpIHsKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IGNsaWVu
dCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRh
dGEgY2FsbHMiKTsKKworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7
CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAg
ICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAvLyA0
IHZlcnRpY2VzIC0+IDIgdHJpYW5nbGVzCisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAsMCwgMCwxLDAsIDEsMCwwLCAxLDEsMCBdKSwgZ2wu
U1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQs
IGZhbHNlLCAwLCAwKTsKKworICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OworCisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kZXhPYmpl
Y3QpOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIs
IDMsIDEwMDAwIF0pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IGluZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5V
TlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wu
VU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGds
LlVOU0lHTkVEX0lOVCwgOCkiKTsKKyAgICBpbmRpY2VzWzBdID0gMjsKKyAgICBpbmRpY2VzWzVd
ID0gMTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJh
d0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7Cisg
ICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRy
YXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOwor
ICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5k
cmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsK
K30KKworZnVuY3Rpb24gcnVuUmVzaXplZEJ1ZmZlclRlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0
IHRoYXQgdXBkYXRpbmcgdGhlIHNpemUgb2YgYSB2ZXJ0ZXggYnVmZmVyIGlzIHByb3Blcmx5IG5v
dGljZWQgYnkgdGhlIFdlYkdMIGltcGxlbWVudGF0aW9uLiIpOworCisgICAgdmFyIHByb2dyYW0g
PSBzZXR1cFByb2dyYW0oZ2wsICJ2cyIsICJmcyIsIFsidlBvc2l0aW9uIiwgInZDb2xvciJdKTsK
KyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgaW5pdGlhbGl6YXRp
b24iKTsKKworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBn
bC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWy0xLDEs
MCwgMSwxLDAsIC0xLC0xLDAsCisgICAgICAgICAtMSwtMSwwLCAxLDEsMCwgMSwtMSwwXSksIGds
LlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHZlcnRleCBzZXR1cCIpOwor
CisgICAgdmFyIHRleENvb3JkT2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRleENvb3JkT2JqZWN0KTsKKyAgICBnbC5idWZmZXJE
YXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWzAsMCwgMSww
LCAwLDEsCisgICAgICAgICAwLDEsIDEsMCwgMSwxXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBn
bC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KDEsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgImFmdGVyIHRleHR1cmUgY29vcmQgc2V0dXAiKTsKKworICAgIC8vIE5vdyBy
ZXNpemUgdGhlc2UgYnVmZmVycyBiZWNhdXNlIHdlIHdhbnQgdG8gY2hhbmdlIHdoYXQgd2UncmUg
ZHJhd2luZy4KKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0
KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShb
CisgICAgICAgIC0xLDEsMCwgMSwxLDAsIC0xLC0xLDAsIDEsLTEsMCwKKyAgICAgICAgLTEsMSww
LCAxLDEsMCwgLTEsLTEsMCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdmVydGV4IHJlZGVmaW5pdGlvbiIpOwor
ICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZE9iamVjdCk7CisgICAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBVaW50OEFycmF5KFsKKyAgICAgICAg
MjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDI1NSwgMCwgMCwgMjU1LAorICAgICAgICAyNTUsIDAs
IDAsIDI1NSwKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1
LAorICAgICAgICAwLCAyNTUsIDAsIDI1NSwKKyAgICAgICAgMCwgMjU1LCAwLCAyNTUsCisgICAg
ICAgIDAsIDI1NSwgMCwgMjU1XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRy
aWJQb2ludGVyKDEsIDQsIGdsLlVOU0lHTkVEX0JZVEUsIGZhbHNlLCAwLCAwKTsKKyAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdGV4dHVyZSBjb29yZGluYXRlIC8g
Y29sb3IgcmVkZWZpbml0aW9uIik7CisKKyAgICB2YXIgbnVtUXVhZHMgPSAyOworICAgIHZhciBp
bmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KG51bVF1YWRzICogNik7CisgICAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IG51bVF1YWRzOyArK2lpKSB7CisgICAgICAgIHZhciBvZmZzZXQgPSBpaSAqIDY7
CisgICAgICAgIHZhciBxdWFkID0gKGlpID09IChudW1RdWFkcyAtIDEpKSA/IDQgOiAwOworICAg
ICAgICBpbmRpY2VzW29mZnNldCArIDBdID0gcXVhZCArIDA7CisgICAgICAgIGluZGljZXNbb2Zm
c2V0ICsgMV0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyAyXSA9IHF1YWQg
KyAyOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDNdID0gcXVhZCArIDI7CisgICAgICAgIGlu
ZGljZXNbb2Zmc2V0ICsgNF0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyA1
XSA9IHF1YWQgKyAzOworICAgIH0KKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZm
ZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9i
amVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNl
cywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJhZnRlciBzZXR0aW5nIHVwIGluZGljZXMiKTsKKyAgICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJ
QU5HTEVTLCBudW1RdWFkcyAqIDYsIGdsLlVOU0lHTkVEX0lOVCwgMCk7CisgICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIGRyYXdpbmciKTsKK30KKworZnVuY3Rpb24g
cnVuVmVyaWZpZXNUb29NYW55SW5kaWNlc1Rlc3RzKCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBkb2VzIG5vdCBleGFtaW5l
IHRvbyBtYW55IGluZGljZXMiKTsKKworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJv
Z3JhbShnbCk7CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhP
YmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgwKTsKKyAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgICAgZ2wuYmluZEJ1
ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgLy8gNCB2ZXJ0aWNlcyAt
PiAyIHRyaWFuZ2xlcworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxv
YXQzMkFycmF5KFsgMCwwLDAsIDAsMSwwLCAxLDAsMCwgMSwxLDAgXSksIGdsLlNUQVRJQ19EUkFX
KTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwg
MCk7CisKKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKworICAgIGRl
YnVnKCJUZXN0IG91dCBvZiByYW5nZSBpbmRpY2VzIikKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5F
TEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMs
IDEwMDAwIF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wu
VU5TSUdORURfSU5ULCA0KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGds
LlVOU0lHTkVEX0lOVCwgMCkiKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBn
bC5VTlNJR05FRF9JTlQsIDgpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkNyYXNoV2l0aEJ1ZmZlclN1
YkRhdGFUZXN0cygpIHsKKyAgICBkZWJ1ZygnVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRh
dGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNoLicp
CisKKyAgICB2YXIgZWxlbWVudEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJp
bmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGVsZW1lbnRCdWZmZXIpOworICAgIGds
LmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDI1NiwgZ2wuU1RBVElDX0RSQVcp
OworICAgIHZhciBkYXRhID0gbmV3IFVpbnQzMkFycmF5KDEyNyk7CisgICAgZ2wuYnVmZmVyU3Vi
RGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgNjQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgImFmdGVyIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGEg
YnVmZmVyIG91dHNpZGUgb2YgdGhlIGFsbG9jYXRlZCBib3VuZHMiKTsKKyAgICB0ZXN0UGFzc2Vk
KCJidWZmZXJTdWJEYXRhLCB3aGVuIGJ1ZmZlciBvYmplY3Qgd2FzIGluaXRpYWxpemVkIHdpdGgg
bnVsbCwgZGlkIG5vdCBjcmFzaCIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDVmYWI2YWI1OGQ2NTk0YTVkZGQ3YmYyODg5ZTkxNTk1MGYyNzUxOWUuLjhkNDVjNzBjOThhMWNm
MzlmYTBhMTYzNjcxYmI4NzcxNzk0OGYyMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDA3MywzICs0MDczLDcgQEAgd2Via2l0Lm9y
Zy9iLzk5NDQxIFsgV2luIF0gc3ZnL3pvb20vcGFnZS96b29tLXN2Zy10aHJvdWdoLW9iamVjdC13
aXRoLXBlcmNlbnRhZ2UKIHdlYmtpdC5vcmcvYi85OTQ0MSBbIFdpbiBdIHRhYmxlcy9tb3ppbGxh
L2J1Z3MvYnVnNzMzMjEuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdIAogCiB3ZWJraXQu
b3JnL2IvOTk0NjYgZmFzdC9mb3Jtcy9kYXRlL2NhbGVuZGFyLXBpY2tlci1rZXktb3BlcmF0aW9u
cy5odG1sIFsgVGV4dCBdCisKKyMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBXZWJHTCBleHRlbnNp
b24gaW1wbGVtZW50YXRpb24gbGFuZHMKK3dlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZhcy93
ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQord2Via2l0
Lm9yZy9iLzk4MjU3IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL3dl
YmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEwMDllMzc4MWJkZGMxNGE1
ODZmNDlmZTJjYzBlMWQwYTgyNjE1MWMuLjNlMjA4ZDk0NjcxZTk1ZDYwZjAxNDFhYjA0ZmU5YzJk
MWVmYzU4ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNzEsNiArMzcxLDkgQEAgZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbAog
IyBodHRwOi8vd2Via2l0Lm9yZy9iLzk2ODI4CiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4
LWFycmF5LW9iamVjdC5odG1sCiAKKyMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBPRVNfZWxlbWVu
dF9pbmRleF91aW50IGV4dGVuc2lvbiBpcyBpbXBsZW1lbnRlZAord2Via2l0Lm9yZy9iLzk4MjU3
IGZhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIFRFU1RTIEVYUEVD
VEVEIFRPIEZBSUwKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGUwYzM4YThiOWY1YWZhMjk0Yjcy
ODIwOTlhMDdjZmM3MThjMzI5NjYuLmViNDdmNzA5NjllZmJhZGIxNWMwMTAwYjI2NTk2ZmZhYWE1
NTdhY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
MzA5LDMgKzEzMDksNiBAQCB3ZWJraXQub3JnL2IvOTkwOTYgZmFzdC9jYW52YXMvd2ViZ2wvYXJy
YXlidWZmZXItdHJhbnNmZXItb2YtY29udHJvbC5odG1sIFsgRmFpbAogCiAjIFRpbWluZyBvdXQg
b24gTW91bnRhaW4gTGlvbiBXSzEgcmVsZWFzZSBzb21ldGltZXMKIHdlYmtpdC5vcmcvYi85OTIy
MSBmYXN0L2pzL3JhbmRvbS1hcnJheS1nYy1zdHJlc3MuaHRtbCBbIFBhc3MgVGltZW91dCBdCisK
KyMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBXZWJHTCBleHRlbnNpb24gaW1wbGVtZW50YXRpb24g
bGFuZHMKK3dlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1p
bmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTRlMzkw
OGIyMTNjMDdjN2NhY2RlMzkxOTJkODBiYjI1OTFhNTNkZS4uMzAyNTg0ZGQ3NDhmYmQ5ODJlYzdm
ZDUzODIzMDFhNmNiYWMzNGYwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE5MSw2ICsxOTEsNyBAQCBmYXN0L2NhbnZhcy93ZWJnbC92aWV3cG9ydC11
bmNoYW5nZWQtdXBvbi1yZXNpemUuaHRtbAogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtYXJyYXkt
aW52YWxpZC1yYW5nZXMuaHRtbAogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRt
bAogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbAorZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sCiBmYXN0L2hhcm5lc3Mvb3Zl
cnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9y
ZWQtZnJvbS1iZmNhY2hlLmh0bWwKIGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxs
b3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169429</attachid>
            <date>2012-10-18 09:59:59 -0700</date>
            <delta_ts>2012-10-18 11:18:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97400-20121018095845.patch</filename>
            <type>text/plain</type>
            <size>61796</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM4MzdlMDY3N2Q0M2Uz
Zjc5ZmJjZjdmNGJjZjYxMDJmMWIyNTBkNC4uZTMwMmZiMWEyOWQ4OGM5NmY0NjA3NjRmNmExNTFi
YjA3OTliNjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTE4ICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xOCAgVGFrYXNoaSBT
YWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTMxNDY0
KTogTnVsbC1wb2ludGVyIGNyYXNoIGluIFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NjM3YzZmMmJjZWMyODA1MDI5ZjMzMmIyOTU0MzIyZTE5
YTU3NWI0Li5kNTM3Mzc5ODA5OTdlNzRjMWRkODQ3Yzg1ZGU2ODkzMDExNmUxNDA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNTIyLDYgKzUyMiw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwog
ICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgaHRtbC9jYW52
YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAogICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmlkbAorICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCiAgICAgaHRt
bC9jYW52YXMvVWludDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRs
CiAgICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwKQEAgLTE0ODMsNiArMTQ4NCw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcAogICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKICAgICBodG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKyAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5k
ZXhVaW50LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAogICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwCkBAIC0yNTQzLDYgKzI1NDUsNyBAQCBJRiAoRU5BQkxFX1dF
QkdMKQogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAg
ICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwCkBAIC0yNTcwLDEyICsyNTczLDE0
IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCisgICAgICAgIGh0bWwv
Y2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAgIExJU1QoQVBQRU5EIFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5p
ZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAogICAgICAgICBodG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvT0VT
RWxlbWVudEluZGV4VWludC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBmNWIwNGFhZTg1MGFjOWVkZmY3MjBiOGY0MTc1YzkyYWM0OTNhMzRkLi5h
MGI3N2M1ZGVhM2RiMGY2NDcyMjJiNWVkYTczNDI5YjhiODMzNzEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTM3Nyw2ICszNzcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9J
bnQ4QXJyYXkuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRl
eFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCBmNDIzNWE0NWQ4MjY5ZmU2MjU3OWFj
ZDA1NjMxOGQ3Yjc0YWNhYjkxLi4wMTBhMGU2NTdhMDllZDFhMTFhZTA4MDVjOGEyYmU3NWRmNDE5
NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0zMDEsNiArMzAxLDcgQEAgSURM
X0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRp
dmVzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAg
ICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkJFBX
RC9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9j
YW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xC
dWZmZXIuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYWIxMjRiNDRmNTAx
ZGEyNTVmYTkwY2Q3ZmIyM2I1Y2VmOGUyNWIxMi4uZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3YTFh
MjAwZmE2OGNlY2E1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NzksNiAr
NTc5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTT0VTVGV4dHVyZUZsb2F0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudElu
ZGV4VWludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhV
aW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPc2NpbGxhdG9yTm9kZS5j
cHAgXApAQCAtMTUyMiw2ICsxNTI0LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAJJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MTZB
cnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsIFwKIAkk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsIFwKQEAgLTMyMDAsNiArMzIwMyw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
VGV4dHVyZUZsb2F0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFy
cmF5T2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJy
YXlPYmplY3QuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4
VWludC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmggXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5MzQ2YjQ3
MWUzNjE3NDAyMDYwYWJmY2Q0NDRlM2RlNzNlZTIyYTM0Li43ZTcwNWU0ODZiMTJlNmFlNTNlNzk2
ZjdkYjJkZDc3ODRjMTE1NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM4OTQsNiArMzg5NCw3IEBAIGVu
YWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmggXAogICAgICAgICBo
dG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMv
T0VTRWxlbWVudEluZGV4VWludC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJl
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIFwKQEAgLTM5MjcsNiAr
MzkyOCw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQu
Y3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKKyAg
ICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAgXAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xVbmlm
b3JtTG9jYXRpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjOWZkYTY2YjRjMTBkODZjNDFmYzNlMTU5
ZjZkMjUyNzBjNjU1NjdhLi45MDE5NjA0ZGNlOGFkY2VmOThjZDYzYmNjZmFlOTE0YjRhMTVkMzc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTYyLDYgKzExNjIsNyBAQAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9P
RVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU0Vs
ZW1lbnRJbmRleFVpbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50MTZBcnJh
eS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwnLApAQCAtNDMyMSw2ICs0MzIyLDgg
QEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52
YXMvT0VTRWxlbWVudEluZGV4VWludC5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TEFjdGl2ZUluZm8uaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3Bw
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oJywKQEAgLTc3OTgsNiAr
NzgwMSw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4
QXJyYXlPYmplY3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwJywKKyAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWludC5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
T3ZlcmZsb3dFdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZDNkNGI2OTQ0YjY4MGJiMGRlNjQ5ZDYyNjIwNWQzMDQwN2RiMjE1NC4uNjYyNjJkYmQw
ZWJkODY1OTU1OGY2MjIyNmFkOTAzMmIwZWE5NjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk5Nyw2ICsxOTk3LDEwIEBA
CiAJCTdFMTJFOTEwMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMTJF
OTBFMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcCAqLzsg
fTsKIAkJN0UzM0NEMDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzNDRDAwMTI3RjM0MEQw
MEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0UzN0VGMkUxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291
cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3Bw
ICovOyB9OworCQk3RTQ2RjZGQTE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhV
aW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
NDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9
OworCQk3RTQ2RjZGQjE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ2RjZGOTE2
MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi87IH07CisJCTdFNUQ3
QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5
NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKKwkJN0U1RDdBNzcxNjFEM0Y4
RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNF
bGVtZW50SW5kZXhVaW50LmggKi87IH07CiAJCTdFOTlBRjUxMEIxMzg0NjQ2OEZCMDFBNSAvKiBX
aW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0Zv
Y3VzQWxsb3dlZEluZGljYXRvci5jcHAgKi87IH07CiAJCTdFOTlBRjUzMEIxMzg0NjQ2OEZCMDFB
NSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3RUU2ODQ1RjEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGlj
YXRpb25DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgKi87IH07
CkBAIC05MjM2LDYgKzkyNDAsMTAgQEAKIAkJN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8qIEN1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHA7IHBhdGggPSBmaWx0ZXJzL0N1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQdXJnZVByaW9yaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFMzdFRjJEMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRl
ckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN1YnJlc291cmNl
TG9hZGVyQ0YuY3BwOyBwYXRoID0gY2YvU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9F
U0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHBhdGggPSBjYW52YXMvT0VTRWxlbWVudEluZGV4
VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNUQ3QTc0MTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjUyMEIxMzg0
NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1
IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRp
b25DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE0NCw2ICsxNTE1Miw4
IEBACiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdFNUQ3QTczMTYxRDNGOEYwMDg5NkMz
NCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLywKKwkJCQk3RTVEN0E3NDE2MUQzRjhGMDA4
OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMw
MDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAwMDk5
RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAwQTI3
NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAgLTE4NDkzLDYgKzE4NTAz
LDggQEAKIAkJCQlDREI4NTlGOTE2MEQ0OTNFMDBFNUIwN0YgLyogSlNNZWRpYUtleUV2ZW50Lmgg
Ki8sCiAJCQkJMTA1OTQ1NzUxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVl
LmNwcCAqLywKIAkJCQkxMDU5NDU3OTE1QjQyQTQzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVt
VmFsdWUuaCAqLywKKwkJCQk3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50
SW5kZXhVaW50LmNwcCAqLywKKwkJCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNF
bGVtZW50SW5kZXhVaW50LmggKi8sCiAJCQkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpT
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8sCiAJCQkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovLAogCQkJCTZFQkYwRTc0MTJBOTg2
ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgKi8sCkBAIC0yNTYyMSw2ICsyNTYz
Myw4IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJv
UG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8qIE9F
U0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFNDZGNkZCMTYyN0EyQ0Ew
MDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg3
MjgsNiArMjg3NDIsOCBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5
IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAw
MDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdFNUQ3QTc2MTYxRDNG
OEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdFNDZGNkZBMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggZjRhZjU1ZDgyNmI2ZWFm
Y2VmZjI1NDIwYzAwYjFjN2E3ZjQ2MmIwZS4uYzkzZjM0MDFlNzAxZmI3NDY2MTExNDU5ZWQ0MzM4
YzljNTE3NzkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgIkpTSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgi
CiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCisjaW5jbHVkZSAiSlNPRVNFbGVtZW50SW5kZXhV
aW50LmgiCiAjaW5jbHVkZSAiSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAi
SlNPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0Lmgi
CkBAIC01Nyw2ICs1OCw3IEBACiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5j
bHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTIwMCw2ICsyMDIsOCBAQCBzdGF0aWMg
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgV2ViR0xFeHRlbgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+
KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU0VsZW1lbnRJbmRleFVp
bnROYW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0
ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNO
YW1lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggMDYzNTQ5Njlk
NDRkM2M0NmE1OTNkZGE1NTRhMzVkMmYxMDg2OTY2ZC4uNDE1NjgzMmQyZGM4NGE3MjQ2YmU2ZDI3
NTY1NTU1ZTIwZDRlZmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiVjhJbnQxNkFycmF5LmgiCiAjaW5jbHVkZSAi
VjhJbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhJbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJWOE9F
U0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJWOE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aCIKICNpbmNsdWRlICJWOE9FU1RleHR1cmVGbG9hdC5oIgogI2luY2x1ZGUgIlY4T0VTVmVydGV4
QXJyYXlPYmplY3QuaCIKQEAgLTE5MSw2ICsxOTIsMTAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4T2JqZWN0KFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24sIHY4OjpIYW5kbGU8
djgKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhB
cnJheU9iamVjdCo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwogICAgICAg
ICByZWZlcmVuY2VOYW1lID0gIm9lc1ZlcnRleEFycmF5T2JqZWN0TmFtZSI7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU0VsZW1lbnRJbmRleFVpbnROYW1lOgor
ICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRl
eFVpbnQqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKKyAgICAgICAgcmVm
ZXJlbmNlTmFtZSA9ICJvZXNFbGVtZW50SW5kZXhVaW50TmFtZSI7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lOgogICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJl
ckluZm8qPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVm
ZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZSI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY5ZGYwYmMxNWMzOTE2MTdjZDkwYjdmMjRkNzU4NDFjZTEyMjE5ODgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KFdFQkdMKQorCisjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4VWludC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK09FU0VsZW1lbnRJbmRleFVpbnQ6Ok9FU0VsZW1lbnRJbmRleFVpbnQoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4
dCkKK3sKK30KKworT0VTRWxlbWVudEluZGV4VWludDo6fk9FU0VsZW1lbnRJbmRleFVpbnQoKQor
eworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBPRVNFbGVtZW50SW5kZXhVaW50
OjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gT0VTRWxlbWVudEluZGV4VWludE5hbWU7
Cit9CisKK1Bhc3NPd25QdHI8T0VTRWxlbWVudEluZGV4VWludD4gT0VTRWxlbWVudEluZGV4VWlu
dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IE9FU0VsZW1lbnRJbmRleFVpbnQoY29udGV4dCkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJk
NDI4NzNhMjA1NGQwNTg4M2E3MzkzODExNjgzZjkxOGVlZWJjNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPRVNFbGVtZW50SW5kZXhVaW50X2gKKyNkZWZpbmUg
T0VTRWxlbWVudEluZGV4VWludF9oCisKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
T0VTRWxlbWVudEluZGV4VWludCA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8T0VTRWxlbWVudEluZGV4VWludD4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+T0VTRWxlbWVudEluZGV4VWludCgpOwor
ICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgT0VTRWxlbWVudEluZGV4VWludChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE9FU0VsZW1lbnRJbmRleFVpbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWlu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YTU2NDAxNTNmYjRmNjUxYjIyMDY1M2QyOGM1MzNhY2VlYWQ5ODFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICAgICAgSlNHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBd
IE9FU0VsZW1lbnRJbmRleFVpbnQgeworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaAppbmRleCA2OTY4YTAyYjRiOTlhYmE4N2E0Y2QyMTU4MjAz
NjU4OTZmM2M4MTIzLi5mZmVjNjE2Y2FiZjgxMGQ2Y2UwMjY2NTE3ODc3YTJiN2Y2NTUxZjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgcHVibGljOgogICAgICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAgICAgICAg
IFdlYktpdFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZSwgLy8gV0VCS0lUXyBwcmVmaXgg
dW50aWwgZXh0ZW5zaW9uIGlzIG9mZmljaWFsCiAgICAgICAgIFdlYktpdFdlYkdMRGVwdGhUZXh0
dXJlTmFtZSwgLy8gV0VCS0lUXyBwcmVmaXggdW50aWwgZXh0ZW5zaW9uIGlzIG9mZmljaWFsCisg
ICAgICAgIE9FU0VsZW1lbnRJbmRleFVpbnROYW1lLAogICAgIH07CiAKICAgICB2b2lkIHJlZigp
IHsgbV9jb250ZXh0LT5yZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNzQ5ZDUxOTE0ZWUzMmExOGNmMTFk
ZDhkMDQ2ZDI4YWNhZjVmNjZhNC4uZjRjN2FlMTI4YmI1ZDM1OTc2ZTkxNzc1MGQzODAxNDdmYWQx
NjE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiT0VTRWxlbWVudEluZGV4VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIgpAQCAtMTY5MCw3ICsxNjkxLDE4IEBAIGJvb2wgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZUVsZW1lbnRBcnJheVNpemUoR0MzRHNpemVpIGNvdW50LCBHQzNE
ZW51bSB0CiAgICAgaWYgKG9mZnNldCA8IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkgeworICAgIGlm
ICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9JTlQpIHsKKyAgICAgICAgLy8g
Rm9yIGFuIHVuc2lnbmVkIGludCBhcnJheSwgb2Zmc2V0IG11c3QgYmUgZGl2aXNpYmxlIGJ5IDQg
Zm9yIGFsaWdubWVudCByZWFzb25zLgorICAgICAgICBpZiAob2Zmc2V0ICUgNCkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBv
ZmZzZXQuCisgICAgICAgIG9mZnNldCAvPSA0OworCisgICAgICAgIEdDM0RzaXplaXB0ciBuID0g
ZWxlbWVudEFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkgLyA0OworICAgICAgICBpZiAob2Zmc2V0
ID4gbiB8fCBjb3VudCA+IG4gLSBvZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfSBlbHNlIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkg
ewogICAgICAgICAvLyBGb3IgYW4gdW5zaWduZWQgc2hvcnQgYXJyYXksIG9mZnNldCBtdXN0IGJl
IGRpdmlzaWJsZSBieSAyIGZvciBhbGlnbm1lbnQgcmVhc29ucy4KICAgICAgICAgaWYgKG9mZnNl
dCAlIDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzA5LDcgKzE3MjEsNyBAQCBi
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKEdDM0Rz
aXplaSBjb3VudCwgR0MzRGVudW0gdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVt
IHR5cGUsIGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWdu
ZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCiB7CiAgICAgLy8gUGVyZm9ybXMgY29uc2VydmF0aXZl
IHZhbGlkYXRpb24gYnkgY2FjaGluZyBhIG1heGltdW0gaW5kZXggb2YKICAgICAvLyB0aGUgZ2l2
ZW4gdHlwZSBwZXIgZWxlbWVudCBhcnJheSBidWZmZXIuIElmIGFsbCBvZiB0aGUgYm91bmQKQEAg
LTE3NDYsNiArMTc1OCwxNSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJ
bmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIGludCYgbgogICAgICAgICAgICAg
ICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBzdGF0aWNfY2FzdDxpbnQ+KHBbaV0pKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlVOU0lHTkVEX0lOVDogeworICAgICAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVp
bnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbnVtRWxlbWVu
dHMgLz0gc2l6ZW9mKEdDM0R1aW50KTsKKyAgICAgICAgICAgIGNvbnN0IEdDM0R1aW50KiBwID0g
c3RhdGljX2Nhc3Q8Y29uc3QgR0MzRHVpbnQqPihidWZmZXItPmRhdGEoKSk7CisgICAgICAgICAg
ICBmb3IgKEdDM0RzaXplaXB0ciBpID0gMDsgaSA8IG51bUVsZW1lbnRzOyBpKyspCisgICAgICAg
ICAgICAgICAgbWF4SW5kZXggPSBtYXgobWF4SW5kZXgsIHN0YXRpY19jYXN0PGludD4ocFtpXSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTc2MiwxMCArMTc4MywxMCBAQCBi
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZl
KEdDM0RlbnVtIHR5cGUsIGludCYgbgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgaW50JiBudW1FbGVtZW50c1Jl
cXVpcmVkKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheVBy
ZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwg
dW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCiB7CiAgICAgQVNTRVJUKGNvdW50ID49IDAg
JiYgb2Zmc2V0ID49IDApOwotICAgIGludCBsYXN0SW5kZXggPSAtMTsKKyAgICB1bnNpZ25lZCBs
YXN0SW5kZXggPSAwOwogICAgIAogICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gZWxlbWVudEFycmF5
QnVmZmVyID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIo
KTsKIApAQCAtMTc4Myw3ICsxODA0LDE2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2
YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0KICAgICB1
bnNpZ25lZCBsb25nIHVvZmZzZXQgPSBvZmZzZXQ7CiAgICAgdW5zaWduZWQgbG9uZyBuID0gY291
bnQ7CiAKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQp
IHsKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfSU5UKSB7Cisg
ICAgICAgIC8vIE1ha2UgdW9mZnNldCBhbiBlbGVtZW50IG9mZnNldC4KKyAgICAgICAgdW9mZnNl
dCAvPSBzaXplb2YoR0MzRHVpbnQpOworICAgICAgICBjb25zdCBHQzNEdWludCogcCA9IHN0YXRp
Y19jYXN0PGNvbnN0IEdDM0R1aW50Kj4oZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlC
dWZmZXIoKS0+ZGF0YSgpKSArIHVvZmZzZXQ7CisgICAgICAgIHdoaWxlIChuLS0gPiAwKSB7Cisg
ICAgICAgICAgICBpZiAoKnAgPiBsYXN0SW5kZXgpCisgICAgICAgICAgICAgICAgbGFzdEluZGV4
ID0gKnA7CisgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUKSB7CiAgICAgICAgIC8vIE1ha2Ug
dW9mZnNldCBhbiBlbGVtZW50IG9mZnNldC4KICAgICAgICAgdW9mZnNldCAvPSBzaXplb2YoR0Mz
RHVzaG9ydCk7CiAgICAgICAgIGNvbnN0IEdDM0R1c2hvcnQqIHAgPSBzdGF0aWNfY2FzdDxjb25z
dCBHQzNEdXNob3J0Kj4oZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKS0+
ZGF0YSgpKSArIHVvZmZzZXQ7CkBAIC0xODA2LDcgKzE4MzYsNyBAQCBib29sIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdD
M0RlbnVtCiAgICAgcmV0dXJuIG51bUVsZW1lbnRzUmVxdWlyZWQgPiAwOwogfQogCi1ib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVSZW5kZXJpbmdTdGF0ZShpbnQgbnVtRWxlbWVu
dHNSZXF1aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVJlbmRlcmlu
Z1N0YXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzUmVxdWlyZWQpCiB7CiAgICAgaWYgKCFtX2N1cnJl
bnRQcm9ncmFtKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODIzLDcgKzE4NTMsNyBAQCBi
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVSZW5kZXJpbmdTdGF0ZShpbnQgbnVt
RWxlbWVudHNSZXF1aXJlZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBMb29rIGlu
IGVhY2ggY29uc3VtZWQgdmVydGV4IGF0dHJpYiAoYnkgdGhlIGN1cnJlbnQgcHJvZ3JhbSkgYW5k
IGZpbmQgdGhlIHNtYWxsZXN0IGJ1ZmZlciBzaXplCi0gICAgaW50IHNtYWxsZXN0TnVtRWxlbWVu
dHMgPSBJTlRfTUFYOworICAgIHVuc2lnbmVkIHNtYWxsZXN0TnVtRWxlbWVudHMgPSBVSU5UX01B
WDsKICAgICBpbnQgbnVtQWN0aXZlQXR0cmliTG9jYXRpb25zID0gbV9jdXJyZW50UHJvZ3JhbS0+
bnVtQWN0aXZlQXR0cmliTG9jYXRpb25zKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1B
Y3RpdmVBdHRyaWJMb2NhdGlvbnM7ICsraSkgewogICAgICAgICBpbnQgbG9jID0gbV9jdXJyZW50
UHJvZ3JhbS0+Z2V0QWN0aXZlQXR0cmliTG9jYXRpb24oaSk7CkBAIC0xODM0LDcgKzE4NjQsNyBA
QCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVSZW5kZXJpbmdTdGF0ZShpbnQg
bnVtRWxlbWVudHNSZXF1aXJlZCkKICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGxhc3QgZWxl
bWVudCwgd2Ugd2lsbCBvbmx5IHRvdWNoIHRoZSBkYXRhIGZvciB0aGUKICAgICAgICAgICAgICAg
ICAvLyBlbGVtZW50IGFuZCBub3RoaW5nIGJleW9uZCBpdC4KICAgICAgICAgICAgICAgICBpbnQg
Ynl0ZXNSZW1haW5pbmcgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlLmJ1ZmZlckJpbmRpbmctPmJ5
dGVMZW5ndGgoKSAtIHN0YXRlLm9mZnNldCk7Ci0gICAgICAgICAgICAgICAgaW50IG51bUVsZW1l
bnRzID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cyA9IDA7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKHN0YXRlLnN0cmlkZSA+IDApOwogICAgICAgICAgICAgICAgIGlm
IChieXRlc1JlbWFpbmluZyA+PSBzdGF0ZS5ieXRlc1BlckVsZW1lbnQpCiAgICAgICAgICAgICAg
ICAgICAgIG51bUVsZW1lbnRzID0gMSArIChieXRlc1JlbWFpbmluZyAtIHN0YXRlLmJ5dGVzUGVy
RWxlbWVudCkgLyBzdGF0ZS5zdHJpZGU7CkBAIC0xOTM0LDYgKzE5NjQsMTEgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkg
Y291bnQsIEdDM0RlbnUKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRF
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUOgogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9JTlQ6CisgICAgICAg
IGlmIChtX29lc0VsZW1lbnRJbmRleFVpbnQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImRyYXdF
bGVtZW50cyIsICJpbnZhbGlkIHR5cGUiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sICJkcmF3RWxlbWVudHMiLCAiaW52YWxpZCB0eXBlIik7CiAgICAgICAgIHJldHVybjsKQEAg
LTE5NTQsNyArMTk4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVu
dHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpbnQgbnVtRWxlbWVudHMgPSAwOworICAgIHVuc2lnbmVkIG51bUVs
ZW1lbnRzID0gMDsKICAgICBpZiAoIWlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNjZXNz
ZXMoKSkgewogICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIHZhbGlkIHJlbmRlcmluZyBzdGF0
ZQogICAgICAgICBpZiAoIXZhbGlkYXRlRWxlbWVudEFycmF5U2l6ZShjb3VudCwgdHlwZSwgc3Rh
dGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSkpIHsKQEAgLTIzMTUsNiArMjM1MCwxNCBAQCBX
ZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3Qg
U3RyaW5nJiBuYW1lKQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1ZlcnRleEFycmF5
T2JqZWN0LmdldCgpOwogICAgIH0KKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIk9F
U19lbGVtZW50X2luZGV4X3VpbnQiKQorICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS0+c3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkgeworICAgICAgICBp
ZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKTsK
KyAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IE9FU0VsZW1lbnRJbmRleFVpbnQ6
OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5k
ZXhVaW50LmdldCgpOworICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldF
QktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKQogICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMg
YWZ0ZXIgYSBjZXJ0YWluIGdyYWNlIHBlcmlvZC4KICAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UobmFtZSwgIldFQktJVF9sb3NlX2NvbnRleHQiKSkgewpAQCAtMjgxNiw2ICsyODU5LDggQEAg
VmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKCkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpOwogICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9y
dHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
Ik9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJPRVNfZWxlbWVudF9pbmRleF91aW50Iik7CiAgICAgcmVzdWx0LmFwcGVu
ZCgiV0VCS0lUX1dFQkdMX2xvc2VfY29udGV4dCIpOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQzo6c3VwcG9ydGVkKHRoaXMpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMjZmYzY2YzViNWZm
ODU5NjBjZjY0YzkzYzM3MGNiYjBlYmNmYjgxNC4uODZlYjgyOWYyMjcwY2EyYmFkMDlmZjQ4Mzg5
YmFiYTRiOGQ2ODAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgSW50U2l6ZTsKIGNs
YXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiBjbGFzcyBPRVNUZXh0dXJlRmxvYXQ7CiBjbGFz
cyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKK2NsYXNzIE9FU0VsZW1lbnRJbmRleFVpbnQ7CiBjbGFz
cyBXZWJHTEFjdGl2ZUluZm87CiBjbGFzcyBXZWJHTEJ1ZmZlcjsKIGNsYXNzIFdlYkdMQ29udGV4
dEdyb3VwOwpAQCAtMzU4LDEyICszNTksMTIgQEAgcHVibGljOgogICAgIGJvb2wgdmFsaWRhdGVF
bGVtZW50QXJyYXlTaXplKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0
ciBvZmZzZXQpOwogCiAgICAgLy8gQ29uc2VydmF0aXZlIGJ1dCBxdWljayBpbmRleCB2YWxpZGF0
aW9uCi0gICAgYm9vbCB2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlw
ZSwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKTsKKyAgICBib29sIHZhbGlkYXRlSW5kZXhBcnJh
eUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZ25lZCYgbnVtRWxlbWVudHNSZXF1aXJl
ZCk7CiAKICAgICAvLyBQcmVjaXNlIGJ1dCBzbG93IGluZGV4IHZhbGlkYXRpb24gLS0gb25seSBk
b25lIGlmIGNvbnNlcnZhdGl2ZSBjaGVja3MgZmFpbAotICAgIGJvb2wgdmFsaWRhdGVJbmRleEFy
cmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zm
c2V0LCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpOworICAgIGJvb2wgdmFsaWRhdGVJbmRleEFy
cmF5UHJlY2lzZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zm
c2V0LCB1bnNpZ25lZCYgbnVtRWxlbWVudHNSZXF1aXJlZCk7CiAgICAgLy8gSWYgbnVtRWxlbWVu
dHMgPD0gMCwgd2Ugb25seSBjaGVjayBpZiBlYWNoIGVuYWJsZWQgdmVydGV4IGF0dHJpYnV0ZSBp
cyBib3VuZCB0byBhIGJ1ZmZlci4KLSAgICBib29sIHZhbGlkYXRlUmVuZGVyaW5nU3RhdGUoaW50
IG51bUVsZW1lbnRzKTsKKyAgICBib29sIHZhbGlkYXRlUmVuZGVyaW5nU3RhdGUodW5zaWduZWQg
bnVtRWxlbWVudHMpOwogCiAgICAgYm9vbCB2YWxpZGF0ZVdlYkdMT2JqZWN0KGNvbnN0IGNoYXIq
LCBXZWJHTE9iamVjdCopOwogCkBAIC01MDUsNiArNTA2LDcgQEAgcHVibGljOgogICAgIE93blB0
cjxPRVNUZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFu
ZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9F
U1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OworICAgIE93blB0cjxP
RVNFbGVtZW50SW5kZXhVaW50PiBtX29lc0VsZW1lbnRJbmRleFVpbnQ7CiAgICAgT3duUHRyPFdl
YkdMTG9zZUNvbnRleHQ+IG1fd2ViZ2xMb3NlQ29udGV4dDsKICAgICBPd25QdHI8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvOwogICAgIE93blB0cjxXZWJH
TERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgKaW5kZXggNDhiMjZjZTEyMmE4YWMyY2Q3
NjJkM2I2NzkxZmFmOGJkMjkwYmI1YS4uMmY0YzEyYzAzOTk5OWJkODdhMjNhZDQ3YmNlZGZlYjNl
YTA0YzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5z
aW9uczNELmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfT0VTX3N0YW5k
YXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdiOF9yZ2JhOAogICAgIC8vICAgR0xf
T0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdMX09FU19lbGVtZW50X2luZGV4X3Vp
bnQKICAgICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQogICAgIC8vICAg
R0xfQVJCX3RleHR1cmVfcmVjdGFuZ2xlIChvbmx5IHRoZSBzdWJzZXQgcmVxdWlyZWQgdG8KICAg
ICAvLyAgICAgaW1wbGVtZW50IElPU3VyZmFjZSBiaW5kaW5nOyBpdCdzIHJlY29tbWVuZGVkIHRv
IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKaW5kZXggYjU2MGJkNDhlMzg2NDg0
NDExNzQwZGY5ZTBhNjUxOWQ0MTY4NmM1NC4uNmNjZjRiMjZjNjY0ZTFhODI3YWE4NDE3MzZjMGU5
NDM0Yzk3MzkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKQEAgLTE1Nyw2ICsxNTcs
MTAgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgbmFtZSkKICAgICBpZiAobmFtZSA9PSAiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAvLyBEZXNrdG9wIEdMIGFsd2F5cyBzdXBw
b3J0cyBVTlNJR05FRF9JTlQgaW5kaWNlcworICAgIGlmIChuYW1lID09ICJHTF9PRVNfZWxlbWVu
dF9pbmRleF91aW50IikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAobmFtZSA9PSAi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKICAgICAgICAgcmV0dXJuIG1fYXZh
aWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNTE2NDI2YTE3NDQwZTEzNGQ5MTZiMTEwZmFhZDgzN2NjZmQ0MmFl
Li5kMjMyMjdiN2Y5YTE0MjM3ODgyYWJmNWI1NGZlM2RlMTM4Y2EyNTNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTItMTAtMTggIEJyYW5kb24gSm9uZXMgIDxiYWpvbmVzQGdvb2dsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IE9FU19lbGVtZW50X2luZGV4X3VpbnQgLyBXRUJLSVRfT0VT
X2VsZW1lbnRfaW5kZXhfdWludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTc0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBPRVNfZWxlbWVudF9pbmRleF91aW50IGV4dGVuc2lvbiBjb25mb3Jt
YW5jZSB0ZXN0IGZyb20gS0hST05PUworCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2Vz
LWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
Mi0xMC0xOCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMTMxNDY0KTogTnVsbC1wb2ludGVyIGNyYXNoIGluIFN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yRWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMjUzYjk4NTQ5ZDk4ZmU2ZTI1ZTg0NDRkZGMxYzgzZTBmZWM5ODgxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgt
dWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MiBAQAorVGVzdHMgdGhhdCBpbmRleCB2YWxp
ZGF0aW9uIGZvciBkcmF3RWxlbWVudHMgZG9lcyBub3QgZXhhbWluZSB0b28gbWFueSBpbmRpY2Vz
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFdlYkdMIGNvbnRleHQgZXhp
c3RzCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0
ZW5zaW9uCitQQVNTIE9FU19lbGVtZW50X2luZGV4X3VpbnQgbGlzdGVkIGFzIHN1cHBvcnRlZCBh
bmQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZAorVGVzdCB0aGF0IGRyYXdzIHdpdGggdW5zaWduZWQg
aW50ZWdlciBpbmRpY2VzIHByb2R1Y2UgdGhlIGV4cGVjdGVkIHJlc3VsdHMKK1BBU1MgRHJhdyAw
IHBhc3NlZCBwaXhlbCB0ZXN0CitUZXN0aW5nIHdpdGggdmFsaWQgaW5kaWNlcworUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9D
T01QTEVURQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQ
QVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCitUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdlIGluZGljZXMKK0VuYWJsZSB2ZXJ0aWNlcywg
dmFsaWQKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFT
UyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApIGlz
IHVuZGVmaW5lZC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAorRW5hYmxlIG5vcm1hbHMsIG91dC1vZi1yYW5nZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMs
IDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCitUZXN0IHdpdGggZW5hYmxlZCBh
dHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gY3VycmVudCBwcm9ncmFtCitFbmFibGUg
YW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMs
IGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCitFbmFibGUgYW4gZXh0cmEgYXR0cmli
dXRlIHdpdGggaW5zdWZmaWNpZW50IGRhdGEgYnVmZmVyCitQQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
UywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1bmRlZmluZWQuCitQYXNzIGxhcmdlIG5lZ2F0
aXZlIGluZGV4IHRvIHZlcnRleEF0dHJpYlBvaW50ZXIKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklB
TkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorVGVzdCB0aGF0IGNs
aWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1
YkRhdGEgY2FsbHMKK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBn
bC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1Iu
CitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURf
SU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgor
UEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lO
VCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BB
U1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQs
IDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdF
bGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0
ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxl
bWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVk
IGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1Rlc3QgdGhhdCB1cGRhdGlu
ZyB0aGUgc2l6ZSBvZiBhIHZlcnRleCBidWZmZXIgaXMgcHJvcGVybHkgbm90aWNlZCBieSB0aGUg
V2ViR0wgaW1wbGVtZW50YXRpb24uCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBhZnRlciBpbml0aWFsaXphdGlvbgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgdmVydGV4IHNldHVwCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3JkIHNldHVwCitQ
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB2ZXJ0ZXgg
cmVkZWZpbml0aW9uCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiBhZnRlciB0ZXh0dXJlIGNvb3JkaW5hdGUgLyBjb2xvciByZWRlZmluaXRpb24KK1BBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIHNldHRpbmcgdXAgaW5k
aWNlcworUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIg
ZHJhd2luZworVGVzdCBvdXQgb2YgcmFuZ2UgaW5kaWNlcworUEFTUyBnbC5kcmF3RWxlbWVudHMo
Z2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVj
dGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
X1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJv
cjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9T
VFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6
IElOVkFMSURfT1BFUkFUSU9OLgorVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBj
b2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNoLgorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiBhZnRlciBhdHRlbXB0
aW5nIHRvIHVwZGF0ZSBhIGJ1ZmZlciBvdXRzaWRlIG9mIHRoZSBhbGxvY2F0ZWQgYm91bmRzCitQ
QVNTIGJ1ZmZlclN1YkRhdGEsIHdoZW4gYnVmZmVyIG9iamVjdCB3YXMgaW5pdGlhbGl6ZWQgd2l0
aCBudWxsLCBkaWQgbm90IGNyYXNoCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiB0aGVyZSBzaG91bGQgYmUgbm8gZXJyb3JzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50
LWluZGV4LXVpbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVt
ZW50LWluZGV4LXVpbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzkyODQ0OTBiNDFkYTA5NDcyYmFhZGM3
MTU3Yjc0MmUzMjkxMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sCkBAIC0wLDAgKzEsMzk2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgT0VTX2VsZW1lbnRfaW5kZXhfdWludCBDb25mb3JtYW5jZSBUZXN0czwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdo
dDogNTBweDsiPiA8L2NhbnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhl
IE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7
CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29u
dGV4dChjYW52YXMpOwordmFyIGV4dCA9IG51bGw7Cit2YXIgdmFvID0gbnVsbDsKKworaWYgKCFn
bCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30g
ZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8v
IFF1ZXJ5IHRoZSBleHRlbnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBh
Y2Nlc3MgaXQKKyAgICBleHQgPSBnbC5nZXRFeHRlbnNpb24oIk9FU19lbGVtZW50X2luZGV4X3Vp
bnQiKTsKKyAgICBpZiAoIWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBPRVNfZWxlbWVu
dF9pbmRleF91aW50IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1
cHBvcnRlZFRlc3QoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1
Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uIik7CisK
KyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdCh0cnVlKTsKKyAgICAgICAgcnVuRHJhd1Rlc3RzKCk7
CisKKyAgICAgICAgLy8gVGhlc2UgdGVzdHMgYXJlIHR3ZWFrZWQgZHVwbGljYXRlcyBvZiB0aGUg
YnVmZmVycy9pbmRleC12YWxpZGF0aW9uKiB0ZXN0cworICAgICAgICAvLyB1c2luZyB1bnNpZ25l
ZCBpbnQgaW5kaWNlcyB0byBlbnN1cmUgdGhhdCBiZWhhdmlvciByZW1haW5zIGNvbnNpc3RlbnQK
KyAgICAgICAgcnVuSW5kZXhWYWxpZGF0aW9uVGVzdHMoKTsKKyAgICAgICAgcnVuQ29waWVzSW5k
aWNlc1Rlc3RzKCk7CisgICAgICAgIHJ1blJlc2l6ZWRCdWZmZXJUZXN0cygpOworICAgICAgICBy
dW5WZXJpZmllc1Rvb01hbnlJbmRpY2VzVGVzdHMoKTsKKyAgICAgICAgcnVuQ3Jhc2hXaXRoQnVm
ZmVyU3ViRGF0YVRlc3RzKCk7CisKKyAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQg
PSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9m
KCJPRVNfZWxlbWVudF9pbmRleF91aW50IikgPj0gMCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9u
RW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91
aW50IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMg
c3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0
ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwi
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gcnVuRHJhd1Rlc3RzKCkgeworICAg
IGRlYnVnKCJUZXN0IHRoYXQgZHJhd3Mgd2l0aCB1bnNpZ25lZCBpbnRlZ2VyIGluZGljZXMgcHJv
ZHVjZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyIpOworICAgIAorICAgIGNhbnZhcy53aWR0aCA9IDUw
OyBjYW52YXMuaGVpZ2h0ID0gNTA7CisgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRo
LCBjYW52YXMuaGVpZ2h0KTsKKyAgICAKKyAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cE5vVGV4
Q29vcmRUZXh0dXJlUHJvZ3JhbShnbCk7CisKKyAgICBmdW5jdGlvbiBzZXR1cERyYXcocykgewor
ICAgICAgICAvLyBDcmVhdGUgYSB2ZXJ0ZXggYnVmZmVyIHRoYXQgY2Fubm90IGJlIGZ1bGx5IGlu
ZGV4ZWQgdmlhIHNob3J0cworICAgICAgICB2YXIgcXVhZEFycmF5TGVuID0gNjU1MzcgKiAzOwor
ICAgICAgICB2YXIgcXVhZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShxdWFkQXJyYXlMZW4pOwor
ICAgICAgICAKKyAgICAgICAgLy8gTGVhdmUgYWxsIGJ1dCB0aGUgbGFzdCA0IHZhbHVlcyB6ZXJv
LWVkIG91dAorICAgICAgICB2YXIgaWR4ID0gcXVhZEFycmF5TGVuIC0gMTI7CisKKyAgICAgICAg
Ly8gSW5pdGlhbGl6ZWQgdGhlIGxhc3QgNCB2YWx1ZXMgdG8gYSBxdWFkCisgICAgICAgIHF1YWRB
cnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMS4wICog
czsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IDAuMDsKKworICAgICAgICBxdWFkQXJyYXlb
aWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOwor
ICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRBcnJheVtpZHgr
K10gPSAtMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9IC0xLjAgKiBzOworICAg
ICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOworCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10g
PSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7CisgICAgICAg
IHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAgICAgICAgdmFyIHZlcnRleE9iamVjdCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dmVydGV4T2JqZWN0KTsKKyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHF1
YWRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAgICAgIC8vIENyZWF0ZSBhbiB1bnNpZ25l
ZCBpbnQgaW5kZXggYnVmZmVyIHRoYXQgaW5kZXhlcyB0aGUgbGFzdCA0IHZlcnRpY2VzCisgICAg
ICAgIHZhciBiYXNlSW5kZXggPSAocXVhZEFycmF5TGVuIC8gMykgLSA0OworCisgICAgICAgIHZh
ciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5iaW5kQnVmZmVy
KGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgICAgIGdsLmJ1ZmZl
ckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50MzJBcnJheShbCisgICAgICAg
ICAgICBiYXNlSW5kZXggKyAwLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMSwKKyAgICAgICAg
ICAgIGJhc2VJbmRleCArIDIsCisgICAgICAgICAgICBiYXNlSW5kZXggKyAyLAorICAgICAgICAg
ICAgYmFzZUluZGV4ICsgMywKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDBdKSwgZ2wuU1RBVElD
X0RSQVcpOworCisgICAgICAgIHZhciBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IDA7CisgICAgICAg
IGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdF9wb3NpdGlvbkxvY2F0aW9uKTsKKyAgICAg
ICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRfcG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxP
QVQsIGZhbHNlLCAwLCAwKTsKKyAgICB9OworICAgIGZ1bmN0aW9uIHJlYWRMb2NhdGlvbih4LCB5
KSB7CisgICAgICAgIHZhciBwaXhlbHMgPSBuZXcgVWludDhBcnJheSgxICogMSAqIDQpOworICAg
ICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHBpeGVscyk7CisgICAgICAgIHJldHVybiBwaXhlbHM7CisgICAgfTsKKyAgICBmdW5jdGlvbiB0
ZXN0UGl4ZWwoYmxhY2tMaXN0LCB3aGl0ZUxpc3QpIHsKKyAgICAgICAgZnVuY3Rpb24gdGVzdExp
c3QobGlzdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbGlz
dC5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAgICAgIHZhciBsID0gbGlzdFtuXTsKKyAgICAg
ICAgICAgICAgICB2YXIgeCA9IC1NYXRoLmZsb29yKGwgKiBjYW52YXMud2lkdGggLyAyKSArIGNh
bnZhcy53aWR0aCAvIDI7CisgICAgICAgICAgICAgICAgdmFyIHkgPSAtTWF0aC5mbG9vcihsICog
Y2FudmFzLmhlaWdodCAvIDIpICsgY2FudmFzLmhlaWdodCAvIDI7CisgICAgICAgICAgICAgICAg
dmFyIHNvdXJjZSA9IHJlYWRMb2NhdGlvbih4LCB5KTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0
aC5hYnMoc291cmNlWzBdIC0gZXhwZWN0ZWQpID4gMikgeworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RMaXN0KGJsYWNr
TGlzdCwgMCkgJiYgdGVzdExpc3Qod2hpdGVMaXN0LCAyNTUpOworICAgIH07CisgICAgZnVuY3Rp
b24gdmVyaWZ5RHJhdyhkcmF3TnVtYmVyLCBzKSB7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMS4w
LCAxLjAsIDEuMCwgMS4wKTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8
IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAgICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVTLCA2LCBnbC5VTlNJR05FRF9JTlQsIDApOworCisgICAgICAgIHZhciBibGFja0xpc3QgPSBb
XTsKKyAgICAgICAgdmFyIHdoaXRlTGlzdCA9IFtdOworICAgICAgICB2YXIgcG9pbnRzID0gWzAu
MCwgMC4yLCAwLjQsIDAuNiwgMC44LCAxLjBdOworICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8
IHBvaW50cy5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAgaWYgKHBvaW50c1tuXSA8PSBzKSB7
CisgICAgICAgICAgICAgICAgYmxhY2tMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd2hpdGVMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodGVzdFBpeGVsKGJsYWNrTGlzdCwg
d2hpdGVMaXN0KSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiRHJhdyAiICsgZHJhd051bWJl
ciArICIgcGFzc2VkIHBpeGVsIHRlc3QiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkRyYXcgIiArIGRyYXdOdW1iZXIgKyAiIGZhaWxlZCBwaXhlbCB0ZXN0Iik7
CisgICAgICAgIH0KKyAgICB9OworCisgICAgc2V0dXBEcmF3KDAuNSk7CisgICAgdmVyaWZ5RHJh
dygwLCAwLjUpOworfQorCitmdW5jdGlvbiBydW5JbmRleFZhbGlkYXRpb25UZXN0cygpIHsKKyAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIHZlcmlmaWVzIHRoZSBj
b3JyZWN0IG51bWJlciBvZiBpbmRpY2VzIik7CisKKyAgICBmdW5jdGlvbiBzaXplSW5CeXRlcyh0
eXBlKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgIGNhc2UgZ2wuQllURToKKyAgICAg
IGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICBjYXNlIGds
LlNIT1JUOgorICAgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVDoKKyAgICAgICAgcmV0dXJuIDI7
CisgICAgICBjYXNlIGdsLklOVDoKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UOgorICAgICAg
Y2FzZSBnbC5GTE9BVDoKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgICBkZWZhdWx0OgorICAgICAg
ICB0aHJvdyAidW5rbm93biB0eXBlIjsKKyAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgcHJvZ3Jh
bSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOworCisgICAgLy8gMyB2ZXJ0aWNlcyA9PiAxIHRy
aWFuZ2xlLCBpbnRlcmxlYXZlZCBkYXRhCisgICAgdmFyIGRhdGFDb21wbGV0ZSA9IG5ldyBGbG9h
dDMyQXJyYXkoWzAsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
IDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEs
IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDFdKTsK
KyAgICB2YXIgZGF0YUluY29tcGxldGUgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAwLCAxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDFdKTsKKyAgICB2YXIg
aW5kaWNlcyA9IG5ldyBVaW50MzJBcnJheShbMCwgMSwgMl0pOworCisgICAgZGVidWcoIlRlc3Rp
bmcgd2l0aCB2YWxpZCBpbmRpY2VzIik7CisKKyAgICB2YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5j
cmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVy
Q29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkYXRhQ29tcGxl
dGUsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB2YXIgZWxlbWVudHMgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBlbGVtZW50cyk7
CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wu
U1RBVElDX0RSQVcpOworICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgdmFyIHZlcnRl
eExvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJhX3ZlcnRleCIpOworICAgIHZh
ciBub3JtYWxMb2MgPSBnbC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAiYV9ub3JtYWwiKTsK
KyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNl
LCA3ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSh2ZXJ0ZXhMb2MpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9j
LCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXpl
SW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1h
bExvYyk7CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50
cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCknKTsKKyAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggb3V0LW9m
LXJhbmdlIGluZGljZXMiKTsKKworICAgIHZhciBidWZmZXJJbmNvbXBsZXRlID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlckluY29t
cGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkYXRhSW5jb21wbGV0
ZSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodmVydGV4TG9j
LCA0LCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDApOworICAg
IGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZlcnRleExvYyk7CisgICAgZ2wuZGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7CisgICAgZGVidWcoIkVuYWJsZSB2ZXJ0aWNlcywg
dmFsaWQiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91
bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdO
RURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAg
IGRlYnVnKCJFbmFibGUgbm9ybWFscywgb3V0LW9mLXJhbmdlIik7CisgICAgZ2wudmVydGV4QXR0
cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVz
KGdsLkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CisgICAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFO
R0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04pOworCisgICAgZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0
dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjdXJyZW50IHByb2dyYW0iKTsKKworICAg
IGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShub3JtYWxMb2MpOworICAgIHZhciBleHRyYUxv
YyA9IE1hdGgubWF4KHZlcnRleExvYywgbm9ybWFsTG9jKSArIDE7CisgICAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkoZXh0cmFMb2MpOworICAgIGRlYnVnKCJFbmFibGUgYW4gZXh0cmEgYXR0
cmlidXRlIHdpdGggbnVsbCIpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAz
LCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTik7CisgICAgZGVidWcoIkVuYWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0
aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KGV4dHJhTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCks
IDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJ
QU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAgZGVidWcoIlBhc3MgbGFyZ2Ug
bmVnYXRpdmUgaW5kZXggdG8gdmVydGV4QXR0cmliUG9pbnRlciIpOworICAgIGdsLnZlcnRleEF0
dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRl
cyhnbC5GTE9BVCksIC0yMDAwMDAwMDAwICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKTsKKyAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgIHNob3VsZEJlVW5kZWZp
bmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDAp
Jyk7Cit9CisKK2Z1bmN0aW9uIHJ1bkNvcGllc0luZGljZXNUZXN0cygpIHsKKyAgICBkZWJ1Zygi
VGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEg
YW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMiKTsKKworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5k
YXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2
ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgwKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2Jq
ZWN0KTsKKyAgICAvLyA0IHZlcnRpY2VzIC0+IDIgdHJpYW5nbGVzCisgICAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAsMCwgMCwxLDAsIDEsMCww
LCAxLDEsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
MCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworICAgIHZhciBpbmRleE9iamVjdCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworCisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgaW5kZXhPYmplY3QpOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFsg
MTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
X1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdM
RV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKKyAgICBpbmRpY2VzWzBdID0gMjsK
KyAgICBpbmRpY2VzWzVdID0gMTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5P
X0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05F
RF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09Q
RVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdO
RURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9P
UEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lH
TkVEX0lOVCwgOCkiKTsKK30KKworZnVuY3Rpb24gcnVuUmVzaXplZEJ1ZmZlclRlc3RzKCkgewor
ICAgIGRlYnVnKCJUZXN0IHRoYXQgdXBkYXRpbmcgdGhlIHNpemUgb2YgYSB2ZXJ0ZXggYnVmZmVy
IGlzIHByb3Blcmx5IG5vdGljZWQgYnkgdGhlIFdlYkdMIGltcGxlbWVudGF0aW9uLiIpOworCisg
ICAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oZ2wsICJ2cyIsICJmcyIsIFsidlBvc2l0aW9u
IiwgInZDb2xvciJdKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0
ZXIgaW5pdGlhbGl6YXRpb24iKTsKKworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVC
dWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0
KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgK
KyAgICAgICAgWy0xLDEsMCwgMSwxLDAsIC0xLC0xLDAsCisgICAgICAgICAtMSwtMSwwLCAxLDEs
MCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxz
ZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHZl
cnRleCBzZXR1cCIpOworCisgICAgdmFyIHRleENvb3JkT2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVy
KCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRleENvb3JkT2JqZWN0KTsK
KyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAg
ICAgICAgWzAsMCwgMSwwLCAwLDEsCisgICAgICAgICAwLDEsIDEsMCwgMSwxXSksIGdsLlNUQVRJ
Q19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC52ZXJ0
ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHRleHR1cmUgY29vcmQgc2V0dXAiKTsK
KworICAgIC8vIE5vdyByZXNpemUgdGhlc2UgYnVmZmVycyBiZWNhdXNlIHdlIHdhbnQgdG8gY2hh
bmdlIHdoYXQgd2UncmUgZHJhd2luZy4KKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3
IEZsb2F0MzJBcnJheShbCisgICAgICAgIC0xLDEsMCwgMSwxLDAsIC0xLC0xLDAsIDEsLTEsMCwK
KyAgICAgICAgLTEsMSwwLCAxLDEsMCwgLTEsLTEsMCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFX
KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdmVydGV4IHJl
ZGVmaW5pdGlvbiIpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29y
ZE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBVaW50OEFy
cmF5KFsKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDI1NSwgMCwgMCwgMjU1LAor
ICAgICAgICAyNTUsIDAsIDAsIDI1NSwKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAg
IDAsIDI1NSwgMCwgMjU1LAorICAgICAgICAwLCAyNTUsIDAsIDI1NSwKKyAgICAgICAgMCwgMjU1
LCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAg
ICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLlVOU0lHTkVEX0JZVEUsIGZhbHNlLCAw
LCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdGV4dHVy
ZSBjb29yZGluYXRlIC8gY29sb3IgcmVkZWZpbml0aW9uIik7CisKKyAgICB2YXIgbnVtUXVhZHMg
PSAyOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KG51bVF1YWRzICogNik7Cisg
ICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVF1YWRzOyArK2lpKSB7CisgICAgICAgIHZhciBv
ZmZzZXQgPSBpaSAqIDY7CisgICAgICAgIHZhciBxdWFkID0gKGlpID09IChudW1RdWFkcyAtIDEp
KSA/IDQgOiAwOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDBdID0gcXVhZCArIDA7CisgICAg
ICAgIGluZGljZXNbb2Zmc2V0ICsgMV0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZz
ZXQgKyAyXSA9IHF1YWQgKyAyOworICAgICAgICBpbmRpY2VzW29mZnNldCArIDNdID0gcXVhZCAr
IDI7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgNF0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5k
aWNlc1tvZmZzZXQgKyA1XSA9IHF1YWQgKyAzOworICAgIH0KKyAgICB2YXIgaW5kZXhPYmplY3Qg
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZ
X0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJhZnRlciBzZXR0aW5nIHVwIGluZGljZXMiKTsKKyAgICBnbC5kcmF3
RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCBudW1RdWFkcyAqIDYsIGdsLlVOU0lHTkVEX0lOVCwgMCk7
CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIGRyYXdpbmciKTsK
K30KKworZnVuY3Rpb24gcnVuVmVyaWZpZXNUb29NYW55SW5kaWNlc1Rlc3RzKCkgeworICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IGluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBk
b2VzIG5vdCBleGFtaW5lIHRvbyBtYW55IGluZGljZXMiKTsKKworICAgIHZhciBwcm9ncmFtID0g
bG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwor
ICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7
CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAg
Ly8gNCB2ZXJ0aWNlcyAtPiAyIHRyaWFuZ2xlcworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLDAsIDAsMSwwLCAxLDAsMCwgMSwxLDAgXSks
IGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZM
T0FULCBmYWxzZSwgMCwgMCk7CisKKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZm
ZXIoKTsKKworICAgIGRlYnVnKCJUZXN0IG91dCBvZiByYW5nZSBpbmRpY2VzIikKKyAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wu
YnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFVpbnQzMkFycmF5KFsgMTAw
MDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdM
RV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA0KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgMCkiKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFO
R0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDgpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkNy
YXNoV2l0aEJ1ZmZlclN1YkRhdGFUZXN0cygpIHsKKyAgICBkZWJ1ZygnVmVyaWZpZXMgdGhhdCB0
aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRv
ZXMgbm90IGNyYXNoLicpCisKKyAgICB2YXIgZWxlbWVudEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGVsZW1lbnRC
dWZmZXIpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDI1Niwg
Z2wuU1RBVElDX0RSQVcpOworICAgIHZhciBkYXRhID0gbmV3IFVpbnQzMkFycmF5KDEyNyk7Cisg
ICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgNjQsIGRhdGEpOwor
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgImFmdGVyIGF0dGVtcHRp
bmcgdG8gdXBkYXRlIGEgYnVmZmVyIG91dHNpZGUgb2YgdGhlIGFsbG9jYXRlZCBib3VuZHMiKTsK
KyAgICB0ZXN0UGFzc2VkKCJidWZmZXJTdWJEYXRhLCB3aGVuIGJ1ZmZlciBvYmplY3Qgd2FzIGlu
aXRpYWxpemVkIHdpdGggbnVsbCwgZGlkIG5vdCBjcmFzaCIpOworfQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDEyZWM1ZGQyYWFkNDEwNDg0ZTRkMTBlYWZkMTIxNWNmYjcxOTgyODcu
LmIzMzc4YWQwMTA3OTBmOGUyMTljNmY5N2NmMGJlM2NhYzJhNDYwMmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDIyMywzICs0MjIz
LDcgQEAgd2Via2l0Lm9yZy9iLzk5NjA0IFsgTWFjIFdpbiBdIGh0dHAvdGVzdHMvd29ya2Vycy90
ZXh0LWVuY29kaW5nLmh0bWwgWyBQYXNzIENyYXMKIAogIyBVc2VyIFRpbWluZyBpcyBub3QgZW5h
YmxlIHlldC4gc28gc2tpcCBpdC4KIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vdXNlci10aW1pbmcgWyBTa2lwIF0KKworIyBFeHBlY3RlZCB0byBm
YWlsIHVudGlsIFdlYkdMIGV4dGVuc2lvbiBpbXBsZW1lbnRhdGlvbiBsYW5kcword2Via2l0Lm9y
Zy9iLzk4MjU3IGZhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBb
IEZhaWx1cmUgUGFzcyBdCit3ZWJraXQub3JnL2IvOTgyNTcgcGxhdGZvcm0vY2hyb21pdW0vdmly
dHVhbC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggYzQ5ZWNlNzZlNTA4ZDQ5MGU2MjI1ZmNjZmU0ODg5N2RkNTNkZDlmMC4uNzI4ZDJkNDIy
YmU0MDU5OTk4YzZhNTIyYjhjZDc4Y2Q4OTY3MmY1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM2Niw2ICszNjYsOSBAQCBmYXN0L2Nzcy9kcmFnZ2Fi
bGUtcmVnaW9uLXBhcnNlci5odG1sCiAjIGh0dHA6Ly93ZWJraXQub3JnL2IvOTY4MjgKIGZhc3Qv
Y2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKIAorIyBFeHBlY3RlZCB0
byBmYWlsIHVudGlsIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uIGlzIGltcGxlbWVu
dGVkCit3ZWJraXQub3JnL2IvOTgyNTcgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5k
ZXgtdWludC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KICMgVEVTVFMgRVhQRUNURUQgVE8gRkFJTAogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggOTc4MjBkNTJmNTY3NDA1NDlhMDE3MDNiOGEwNDUyMWQyMzA5NTcyNi4uNmFhMWM0OTUzM2Jj
NjhiYzk1N2Q2NzRhMmQ3NGMwYjFjZmQ4MDBiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzMTQsMyArMTMxNCw2IEBAIHdlYmtpdC5vcmcvYi85OTIy
MSBmYXN0L2pzL3JhbmRvbS1hcnJheS1nYy1zdHJlc3MuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAK
ICMgVXNlciBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQuIHNvIHNraXAgaXQuCiB3ZWJraXQub3Jn
L2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3VzZXItdGltaW5nIFsg
U2tpcCBdCisKKyMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBXZWJHTCBleHRlbnNpb24gaW1wbGVt
ZW50YXRpb24gbGFuZHMKK3dlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZhcy93ZWJnbC9vZXMt
ZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzOWE2ZThiMDQxOTdhZDQ2MjRhOGUyM2Ri
NDJkZTM3NWExNjZiYzY4Li5mMzY0YTQ1YjIwMmE5Y2E0YTY5NGE0NDBmZThlODZiYmMyNDYxNTMx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTkxLDYg
KzE5MSw3IEBAIGZhc3QvY2FudmFzL3dlYmdsL3ZpZXdwb3J0LXVuY2hhbmdlZC11cG9uLXJlc2l6
ZS5odG1sCiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1hcnJheS1pbnZhbGlkLXJhbmdlcy5odG1s
CiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5odG1sCiBmYXN0L2NhbnZhcy93ZWJn
bC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCitmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxl
bWVudC1pbmRleC11aW50Lmh0bWwKIGZhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0y
Lmh0bWwKIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRt
bAogZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdlLWxv
YWQuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>