<?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>91635</bug_id>
          
          <creation_ts>2012-07-18 10:16:14 -0700</creation_ts>
          <short_desc>[chromium] Fix style for numeric literals in chromium unit test code</short_desc>
          <delta_ts>2012-07-18 11:59:11 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>enne</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>672478</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-07-18 10:16:14 -0700</bug_when>
    <thetext>Patch coming in a moment, which updates unit test code to be consistent with WebKit style for numeric literals.  Specifically, I tried to find most places where extra &quot;.0&quot; or &quot;f&quot; suffixes were being used and remove them.

A couple of places I did not modify:
- division denominators should be left alone, so that they do not accidentally do integer division.
- Color(...) constructors should be left alone, since there are overloaded integer and floating point constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672488</commentid>
    <comment_count>1</comment_count>
      <attachid>153038</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-07-18 10:23:56 -0700</bug_when>
    <thetext>Created attachment 153038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672489</commentid>
    <comment_count>2</comment_count>
      <attachid>153038</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-18 10:25:01 -0700</bug_when>
    <thetext>Comment on attachment 153038
Patch

R=me.  Thanks for the cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672567</commentid>
    <comment_count>3</comment_count>
      <attachid>153038</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 11:26:10 -0700</bug_when>
    <thetext>Comment on attachment 153038
Patch

Clearing flags on attachment: 153038

Committed r122993: &lt;http://trac.webkit.org/changeset/122993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672568</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 11:26:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672603</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-07-18 11:59:11 -0700</bug_when>
    <thetext>And just post-conclusion for future reference sqrt(2) is ambiguous and causes build errors, so it should remain sqrt(2.0)

Thanks to Tony Chang for gardening that - http://trac.webkit.org/changeset/122997</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153038</attachid>
            <date>2012-07-18 10:23:56 -0700</date>
            <delta_ts>2012-07-18 11:26:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91635-20120718102355.patch</filename>
            <type>text/plain</type>
            <size>68917</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQ2M2E4NjNjYTY0ODFjMzdhOTgyNmFlNzAyYjc0NzM5YTMxYWJkMWQuLjRkM2EyMTUwZTllNzQ1
NjRlOWE0NWJhMTAxZDkwZGU0MTBmOTdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDctMTggIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggc3R5bGUgZm9yIG51bWVyaWMgbGl0
ZXJhbHMgaW4gY2hyb21pdW0gdW5pdCB0ZXN0IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlcmUgcG9zc2libGUsIHJlbW92ZWQgIi4wIiBhbmQg
ImYiIHN1ZmZpeGVzIG9uIG51bWVyaWMgbGl0ZXJhbHMsCisgICAgICAgIHRvIGJlIG1vcmUgY29u
c2lzdGVudCB3aXRoIFdlYktpdCBzdHlsZSBydWxlcy4KKworICAgICAgICAqIHRlc3RzL0NDRGFt
YWdlVHJhY2tlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRFU1RfRik6CisgICAg
ICAgICogdGVzdHMvQ0NMYXllclF1YWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgorICAgICAg
ICAqIHRlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0xheWVyQ2hy
b21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUKToKKwogMjAxMi0wNy0xNyAgU2hhd24gU2lu
Z2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSBhd2t3YXJkIGFuY2hvclBvaW50IHVzYWdlIHRoYXQgaW1wbGljaXR5IGFmZmVjdHMgbGF5ZXIg
cG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1h
Z2VUcmFja2VyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdl
VHJhY2tlclRlc3QuY3BwCmluZGV4IDdhYTM3NGQwMDlkNzY5NjBhM2UxMjkzNzMxNDcxOWY5ZTg4
YWUyYmEuLmFhMzc1ODhiYTQwZDk5MWY0MDIyNGMwMTIyMWJjODA2MDQwOGMxYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNw
cApAQCAtMzI5LDggKzMyOSw4IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlE
YW1hZ2VGb3JUcmFuc2Zvcm1lZExheWVyKQogICAgIC8vIFNpbmNlIHRoZSBjaGlsZCBsYXllciBp
cyBzcXVhcmUsIHJvdGF0aW9uIGJ5IDQ1IGRlZ3JlZXMgYWJvdXQgdGhlIGNlbnRlciBzaG91bGQK
ICAgICAvLyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgZXhwZWN0ZWQgcmVjdCBieSBzcXJ0KDIp
LCBjZW50ZXJlZCBhcm91bmQgKDEwMCwgMTAwKS4gVGhlCiAgICAgLy8gb2xkIGV4cG9zZWQgcmVn
aW9uIHNob3VsZCBiZSBmdWxseSBjb250YWluZWQgaW4gdGhlIG5ldyByZWdpb24uCi0gICAgZG91
YmxlIGV4cGVjdGVkV2lkdGggPSAzMC4wICogc3FydCgyLjApOwotICAgIGRvdWJsZSBleHBlY3Rl
ZFBvc2l0aW9uID0gMTAwLjAgLSAwLjUgKiBleHBlY3RlZFdpZHRoOworICAgIGRvdWJsZSBleHBl
Y3RlZFdpZHRoID0gMzAgKiBzcXJ0KDIpOworICAgIGRvdWJsZSBleHBlY3RlZFBvc2l0aW9uID0g
MTAwIC0gMC41ICogZXhwZWN0ZWRXaWR0aDsKICAgICBGbG9hdFJlY3QgZXhwZWN0ZWRSZWN0KGV4
cGVjdGVkUG9zaXRpb24sIGV4cGVjdGVkUG9zaXRpb24sIGV4cGVjdGVkV2lkdGgsIGV4cGVjdGVk
V2lkdGgpOwogICAgIHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1h
Z2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7CiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1Rf
RVEoZXhwZWN0ZWRSZWN0LCByb290RGFtYWdlUmVjdCk7CkBAIC02MzQsOCArNjM0LDggQEAgVEVT
VF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvck5lc3RlZFN1cmZhY2VzKQog
ICAgIC8vIC0gY2hpbGQxIHN1cmZhY2UgZGFtYWdlIGluIHJvb3Qgc3VyZmFjZSBzcGFjZTogRmxv
YXRSZWN0KDMwMCwgMzAwLCA2LCA4KTsKICAgICAvLyAtIGNoaWxkMiBkYW1hZ2UgaW4gcm9vdCBz
dXJmYWNlIHNwYWNlOiBGbG9hdFJlY3QoMTEsIDExLCAxOCwgMTgpOwogICAgIGNsZWFyRGFtYWdl
Rm9yQWxsU3VyZmFjZXMocm9vdC5nZXQoKSk7Ci0gICAgZ3JhbmRDaGlsZDEtPnNldE9wYWNpdHko
MC43Zik7Ci0gICAgY2hpbGQyLT5zZXRPcGFjaXR5KDAuN2YpOworICAgIGdyYW5kQ2hpbGQxLT5z
ZXRPcGFjaXR5KDAuNyk7CisgICAgY2hpbGQyLT5zZXRPcGFjaXR5KDAuNyk7CiAgICAgZW11bGF0
ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsKICAgICBjaGlsZERhbWFnZVJlY3QgPSBjaGls
ZDEtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgp
OwogICAgIHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFj
a2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7CkBAIC04MjYsNyArODI2LDcgQEAgVEVTVF9GKEND
RGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvclJlcGxpY2EpCiAgICAgICAgIGdyYW5k
Q2hpbGQxUmVwbGljYS0+c2V0UG9zaXRpb24oRmxvYXRQb2ludDo6emVybygpKTsKICAgICAgICAg
Z3JhbmRDaGlsZDFSZXBsaWNhLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50Ojp6ZXJvKCkpOwog
ICAgICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCByZWZsZWN0aW9uOwotICAgICAgICByZWZs
ZWN0aW9uLnNjYWxlM2QoLTEuMCwgMS4wLCAxLjApOworICAgICAgICByZWZsZWN0aW9uLnNjYWxl
M2QoLTEsIDEsIDEpOwogICAgICAgICBncmFuZENoaWxkMVJlcGxpY2EtPnNldFRyYW5zZm9ybShy
ZWZsZWN0aW9uKTsKICAgICAgICAgZ3JhbmRDaGlsZDEtPnNldFJlcGxpY2FMYXllcihncmFuZENo
aWxkMVJlcGxpY2EucmVsZWFzZSgpKTsKICAgICB9CkBAIC04NDYsNyArODQ2LDcgQEAgVEVTVF9G
KENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvclJlcGxpY2EpCiAgICAgLy8gICAg
ICAgICBhcmVhcyB0byBiZSBkYW1hZ2VkIG9uIHRoZSB0YXJnZXQuCiAgICAgY2xlYXJEYW1hZ2VG
b3JBbGxTdXJmYWNlcyhyb290LmdldCgpKTsKICAgICBJbnRSZWN0IG9sZENvbnRlbnRSZWN0ID0g
Y2hpbGQxLT5yZW5kZXJTdXJmYWNlKCktPmNvbnRlbnRSZWN0KCk7Ci0gICAgZ3JhbmRDaGlsZDEt
PnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoMTk1LjAsIDIwNS4wKSk7CisgICAgZ3JhbmRDaGlsZDEt
PnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoMTk1LCAyMDUpKTsKICAgICBlbXVsYXRlRHJhd2luZ09u
ZUZyYW1lKHJvb3QuZ2V0KCkpOwogICAgIEFTU0VSVF9FUShvbGRDb250ZW50UmVjdC53aWR0aCgp
LCBjaGlsZDEtPnJlbmRlclN1cmZhY2UoKS0+Y29udGVudFJlY3QoKS53aWR0aCgpKTsKICAgICBB
U1NFUlRfRVEob2xkQ29udGVudFJlY3QuaGVpZ2h0KCksIGNoaWxkMS0+cmVuZGVyU3VyZmFjZSgp
LT5jb250ZW50UmVjdCgpLmhlaWdodCgpKTsKQEAgLTkwMiw3ICs5MDIsNyBAQCBURVNUX0YoQ0NE
YW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yTWFzaykKICAgICBjaGlsZC0+c2V0T3Bh
Y2l0eSgwLjUpOwogICAgIHsKICAgICAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBncmFuZENoaWxk
ID0gQ0NMYXllckltcGw6OmNyZWF0ZSg0KTsKLSAgICAgICAgZ3JhbmRDaGlsZC0+c2V0UG9zaXRp
b24oRmxvYXRQb2ludCgyLjAsIDIuMCkpOworICAgICAgICBncmFuZENoaWxkLT5zZXRQb3NpdGlv
bihGbG9hdFBvaW50KDIsIDIpKTsKICAgICAgICAgZ3JhbmRDaGlsZC0+c2V0QW5jaG9yUG9pbnQo
RmxvYXRQb2ludDo6emVybygpKTsKICAgICAgICAgZ3JhbmRDaGlsZC0+c2V0Qm91bmRzKEludFNp
emUoMiwgMikpOwogICAgICAgICBncmFuZENoaWxkLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CkBA
IC05NzcsNyArOTc3LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFn
ZUZvclJlcGxpY2FNYXNrKQogICAgICAgICBncmFuZENoaWxkMVJlcGxpY2EtPnNldFBvc2l0aW9u
KEZsb2F0UG9pbnQ6Onplcm8oKSk7CiAgICAgICAgIGdyYW5kQ2hpbGQxUmVwbGljYS0+c2V0QW5j
aG9yUG9pbnQoRmxvYXRQb2ludDo6emVybygpKTsKICAgICAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggcmVmbGVjdGlvbjsKLSAgICAgICAgcmVmbGVjdGlvbi5zY2FsZTNkKC0xLjAsIDEuMCwg
MS4wKTsKKyAgICAgICAgcmVmbGVjdGlvbi5zY2FsZTNkKC0xLCAxLCAxKTsKICAgICAgICAgZ3Jh
bmRDaGlsZDFSZXBsaWNhLT5zZXRUcmFuc2Zvcm0ocmVmbGVjdGlvbik7CiAgICAgICAgIGdyYW5k
Q2hpbGQxLT5zZXRSZXBsaWNhTGF5ZXIoZ3JhbmRDaGlsZDFSZXBsaWNhLnJlbGVhc2UoKSk7CiAg
ICAgfQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZl
cmlmeURhbWFnZUZvclJlcGxpY2FNYXNrV2l0aEFuY2hvcikKICAgICAgICAgZ3JhbmRDaGlsZDFS
ZXBsaWNhLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50Ojp6ZXJvKCkpOwogICAgICAgICBncmFuZENo
aWxkMVJlcGxpY2EtPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMSwgMCkpOyAvLyBUaGlzIGlz
IHRoZSBhbmNob3IgYmVpbmcgdGVzdGVkLgogICAgICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCByZWZsZWN0aW9uOwotICAgICAgICByZWZsZWN0aW9uLnNjYWxlM2QoLTEuMCwgMS4wLCAxLjAp
OworICAgICAgICByZWZsZWN0aW9uLnNjYWxlM2QoLTEsIDEsIDEpOwogICAgICAgICBncmFuZENo
aWxkMVJlcGxpY2EtPnNldFRyYW5zZm9ybShyZWZsZWN0aW9uKTsKICAgICAgICAgZ3JhbmRDaGls
ZDEtPnNldFJlcGxpY2FMYXllcihncmFuZENoaWxkMVJlcGxpY2EucmVsZWFzZSgpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJRdWFkVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJRdWFkVGVzdC5jcHAK
aW5kZXggMmFiNGVjNGJjN2Q2ODQyYzA3MTc1Y2MzNTJlYzcxZDYzYTJlMGFhNC4uZWNlMjQyMGU0
MTdiMjZhNDZkZGM5NDMzNzM4NGM3NzA0MjU2ZGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyUXVhZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclF1YWRUZXN0LmNwcApAQCAtNTcsNyArNTcsNyBAQCBURVNU
KENDTGF5ZXJRdWFkVGVzdCwgSW5mbGF0ZSkKIAogICAgIEZsb2F0UXVhZCBxdWFkKHAxLCBwMiwg
cDMsIHA0KTsKICAgICBDQ0xheWVyUXVhZCBsYXllclF1YWQocXVhZCk7Ci0gICAgcXVhZC5zY2Fs
ZSgyLjAsIDIuMCk7CisgICAgcXVhZC5zY2FsZSgyLCAyKTsKICAgICBsYXllclF1YWQuaW5mbGF0
ZSgwLjUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyUXVhZC5mbG9hdFF1YWQoKSA9PSBxdWFkKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IDhlODA2OGUyYzAxMjQ1NDcxYjgzYmRlMGIxNzZm
NDQyMTdkZTFhZDMuLjM2NzA4ODRhNTk2OWE2MDVmYzg4ZGFhMWU0MzRiY2JiMzY0Y2U3MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0Zvck5vT3BMYXllcikKICAgICBjaGlsZC0+
YWRkQ2hpbGQoZ3JhbmRDaGlsZCk7CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVu
dGl0eU1hdHJpeDsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYp
LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDAsIDApLCBmYWxzZSk7Ci0gICAgc2V0
TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlk
ZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAu
MGYpLCBJbnRTaXplKDAsIDApLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVz
dGluZyhncmFuZENoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMC4wZiwgMC4wZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEludFNpemUoMCwg
MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9h
dFBvaW50KDAsIDApLCBJbnRTaXplKDAsIDApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4
LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDAsIDApLCBmYWxz
ZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBp
ZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9p
bnQoMCwgMCksIEludFNpemUoMCwgMCksIGZhbHNlKTsKIAogICAgIGV4ZWN1dGVDYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKIApAQCAtMTc2LDggKzE3
Niw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0Zv
clNpbmdsZUxheWVyKQogCiAgICAgLy8gQ2FzZSAxOiBzZXR0aW5nIHRoZSBzdWJsYXllciB0cmFu
c2Zvcm0gc2hvdWxkIG5vdCBhZmZlY3QgdGhpcyBsYXllcidzIGRyYXcgdHJhbnNmb3JtIG9yIHNj
cmVlbi1zcGFjZSB0cmFuc2Zvcm0uCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggYXJiaXRy
YXJ5VHJhbnNsYXRpb247Ci0gICAgYXJiaXRyYXJ5VHJhbnNsYXRpb24udHJhbnNsYXRlKDEwLjAs
IDIwLjApOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGlk
ZW50aXR5TWF0cml4LCBhcmJpdHJhcnlUcmFuc2xhdGlvbiwgRmxvYXRQb2ludCgwLjBmLCAwLjBm
KSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgwLCAwKSwgZmFsc2UpOworICAgIGFy
Yml0cmFyeVRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgxMCwgMjApOworICAgIHNldExheWVyUHJvcGVy
dGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBhcmJpdHJhcnlUcmFu
c2xhdGlvbiwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgwLCAw
KSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHkobGF5ZXIuZ2V0KCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRl
bnRpdHlNYXRyaXgsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwogICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpKTsKQEAgLTE4NSwyMiArMTg1LDIyIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQogICAgIC8vIENhc2UgMjogc2V0
dGluZyB0aGUgYm91bmRzIG9mIHRoZSBsYXllciBzaG91bGQgcmVzdWx0IGluIGEgZHJhdyB0cmFu
c2Zvcm0gdGhhdCB0cmFuc2xhdGVzIHRvIGhhbGYgdGhlIHdpZHRoIGFuZCBoZWlnaHQuCiAgICAg
Ly8gICAgICAgICBUaGUgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybSBzaG91bGQgcmVtYWluIGFzIHRo
ZSBpZGVudGl0eSwgYmVjYXVzZSBpdCBkb2VzIG5vdCBkZWFsIHdpdGggdHJhbnNmb3JtaW5nIHRv
L2Zyb20gdGhlIGNlbnRlciBvZiB0aGUgbGF5ZXIuCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXggdHJhbnNsYXRpb25Ub0NlbnRlcjsKLSAgICB0cmFuc2xhdGlvblRvQ2VudGVyLnRyYW5zbGF0
ZSg1LjAsIDYuMCk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYp
LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKKyAgICB0
cmFuc2xhdGlvblRvQ2VudGVyLnRyYW5zbGF0ZSg1LCA2KTsKKyAgICBzZXRMYXllclByb3BlcnRp
ZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEyKSwgZmFs
c2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5
ZXIuZ2V0KCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEodHJhbnNsYXRp
b25Ub0NlbnRlciwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOwogCiAgICAgLy8gQ2FzZSAzOiBUaGUgYW5jaG9yIHBvaW50IGJ5IGl0c2VsZiAod2l0
aG91dCBhIGxheWVyIHRyYW5zZm9ybSkgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IG9uIHRoZSB0cmFu
c2Zvcm1zLgotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGlk
ZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjI1ZiwgMC4yNWYpLCBG
bG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKKyAgICBzZXRM
YXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4yNSwgMC4yNSksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEodHJhbnNsYXRpb25Ub0NlbnRlciwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CiAg
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgbGF5ZXIt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSA0OiBBIGNoYW5nZSBpbiBh
Y3R1YWwgcG9zaXRpb24gYWZmZWN0cyBib3RoIHRoZSBkcmF3IHRyYW5zZm9ybSBhbmQgc2NyZWVu
IHNwYWNlIHRyYW5zZm9ybS4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwb3NpdGlvblRy
YW5zZm9ybTsKLSAgICBwb3NpdGlvblRyYW5zZm9ybS50cmFuc2xhdGUoMC4wLCAxLjIpOwotICAg
IHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGlkZW50aXR5TWF0cml4
LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjI1ZiwgMC4yNWYpLCBGbG9hdFBvaW50KDAu
MGYsIDEuMmYpLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKKyAgICBwb3NpdGlvblRyYW5zZm9y
bS50cmFuc2xhdGUoMCwgMS4yKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxh
eWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4y
NSwgMC4yNSksIEZsb2F0UG9pbnQoMCwgMS4yKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CiAg
ICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShsYXllci5nZXQo
KSk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwb3NpdGlvblRyYW5zZm9y
bSAqIHRyYW5zbGF0aW9uVG9DZW50ZXIsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwogICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKQEAgLTIwOCwxNyArMjA4LDE3IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQogICAg
IC8vIENhc2UgNTogSW4gdGhlIGNvcnJlY3Qgc2VxdWVuY2Ugb2YgdHJhbnNmb3JtcywgdGhlIGxh
eWVyIHRyYW5zZm9ybSBzaG91bGQgcHJlLW11bHRpcGx5IHRoZSB0cmFuc2xhdGlvblRvQ2VudGVy
LiBUaGlzIGlzIGVhc2lseSB0ZXN0ZWQgYnkKICAgICAvLyAgICAgICAgIHVzaW5nIGEgc2NhbGUg
dHJhbnNmb3JtLCBiZWNhdXNlIHNjYWxlIGFuZCB0cmFuc2xhdGlvbiBhcmUgbm90IGNvbW11dGF0
aXZlLgogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtOwotICAgIGxh
eWVyVHJhbnNmb3JtLnNjYWxlM2QoMi4wLCAyLjAsIDEuMCk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIGlkZW50aXR5TWF0cml4
LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXpl
KDEwLCAxMiksIGZhbHNlKTsKKyAgICBsYXllclRyYW5zZm9ybS5zY2FsZTNkKDIsIDIsIDEpOwor
ICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGxheWVyVHJhbnNm
b3JtLCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zQW5kVmlzaWJpbGl0eShsYXllci5nZXQoKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShsYXllclRyYW5zZm9ybSAqIHRyYW5zbGF0aW9uVG9DZW50ZXIsIGxheWVyLT5k
cmF3VHJhbnNmb3JtKCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEobGF5
ZXJUcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIENh
c2UgNjogVGhlIGxheWVyIHRyYW5zZm9ybSBzaG91bGQgb2NjdXIgd2l0aCByZXNwZWN0IHRvIHRo
ZSBhbmNob3IgcG9pbnQuCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRpb25U
b0FuY2hvcjsKLSAgICB0cmFuc2xhdGlvblRvQW5jaG9yLnRyYW5zbGF0ZSg1LjAsIDAuMCk7Cisg
ICAgdHJhbnNsYXRpb25Ub0FuY2hvci50cmFuc2xhdGUoNSwgMCk7CiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWRSZXN1bHQgPSB0cmFuc2xhdGlvblRvQW5jaG9yICogbGF5ZXJU
cmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yLmludmVyc2UoKTsKLSAgICBzZXRMYXllclBy
b3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgaWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMC41ZiwgMC4wZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIElu
dFNpemUoMTAsIDEyKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
bGF5ZXIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKICAgICBl
eGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KGxheWVyLmdldCgpKTsK
ICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUmVzdWx0ICogdHJh
bnNsYXRpb25Ub0NlbnRlciwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CiAgICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQogICAgIC8vICAgICAgICAg
VGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXMgZG9l
cyB0aGlzIGltcGxpY2l0bHksIGJ1dCBpdCBpcwogICAgIC8vICAgICAgICAgc3RpbGwgd29ydGgg
dGVzdGluZyB0byBkZXRlY3QgYWNjaWRlbnRhbCByZWdyZXNzaW9ucy4KICAgICBleHBlY3RlZFJl
c3VsdCA9IHBvc2l0aW9uVHJhbnNmb3JtICogdHJhbnNsYXRpb25Ub0FuY2hvciAqIGxheWVyVHJh
bnNmb3JtICogdHJhbnNsYXRpb25Ub0FuY2hvci5pbnZlcnNlKCk7Ci0gICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIGlkZW50aXR5TWF0
cml4LCBGbG9hdFBvaW50KDAuNWYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDEuMmYpLCBJbnRT
aXplKDEwLCAxMiksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxh
eWVyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC41
LCAwKSwgRmxvYXRQb2ludCgwLCAxLjIpLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKICAgICBl
eGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KGxheWVyLmdldCgpKTsK
ICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUmVzdWx0ICogdHJh
bnNsYXRpb25Ub0NlbnRlciwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CiAgICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOwpAQCAtMjQ1LDExICsyNDUsMTEgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFyY2h5KQogCiAgICAgLy8g
Q2FzZSAxOiBwYXJlbnQncyBhbmNob3JQb2ludCBzaG91bGQgbm90IGFmZmVjdCBjaGlsZCBvciBn
cmFuZENoaWxkLgogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkVHJhbnNsYXRpb25U
b0NlbnRlciwgZ3JhbmRDaGlsZFRyYW5zbGF0aW9uVG9DZW50ZXI7Ci0gICAgY2hpbGRUcmFuc2xh
dGlvblRvQ2VudGVyLnRyYW5zbGF0ZSg4LjAsIDkuMCk7Ci0gICAgZ3JhbmRDaGlsZFRyYW5zbGF0
aW9uVG9DZW50ZXIudHJhbnNsYXRlKDM4LjAsIDM5LjApOwotICAgIHNldExheWVyUHJvcGVydGll
c0ZvclRlc3RpbmcocGFyZW50LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMC4yNWYsIDAuMjVmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6
ZSgxMCwgMTIpLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGls
ZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYs
IDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsK
LSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgRmxvYXRQ
b2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CisgICAgY2hpbGRUcmFu
c2xhdGlvblRvQ2VudGVyLnRyYW5zbGF0ZSg4LCA5KTsKKyAgICBncmFuZENoaWxkVHJhbnNsYXRp
b25Ub0NlbnRlci50cmFuc2xhdGUoMzgsIDM5KTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKHBhcmVudC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDAuMjUsIDAuMjUpLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMiksIGZh
bHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVu
dGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQo
MCwgMCksIEludFNpemUoMTYsIDE4KSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0Zv
clRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4
LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZh
bHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBh
cmVudC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShjaGlsZFRy
YW5zbGF0aW9uVG9DZW50ZXIsIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5zY3JlZW5TcGFj
ZVRyYW5zZm9ybSgpKTsKQEAgLTI1OCwxMCArMjU4LDEwIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbXBsZUhpZXJhcmNoeSkKIAogICAgIC8v
IENhc2UgMjogcGFyZW50J3MgcG9zaXRpb24gYWZmZWN0cyBjaGlsZCBhbmQgZ3JhbmRDaGlsZC4K
ICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwYXJlbnRQb3NpdGlvblRyYW5zZm9ybTsKLSAg
ICBwYXJlbnRQb3NpdGlvblRyYW5zZm9ybS50cmFuc2xhdGUoMC4wLCAxLjIpOwotICAgIHNldExh
eWVyUHJvcGVydGllc0ZvclRlc3RpbmcocGFyZW50LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4yNWYsIDAuMjVmKSwgRmxvYXRQb2ludCgwLjBmLCAx
LjJmKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9y
VGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDE2LCAx
OCksIGZhbHNlKTsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQu
Z2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAw
LjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7Cisg
ICAgcGFyZW50UG9zaXRpb25UcmFuc2Zvcm0udHJhbnNsYXRlKDAsIDEuMik7CisgICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVu
dGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1KSwgRmxvYXRQb2ludCgwLCAxLjIpLCBJ
bnRTaXplKDEwLCAxMiksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KGNoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQo
MCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTYsIDE4KSwgZmFsc2UpOworICAgIHNl
dExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRy
aXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJ
bnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSAqIGNoaWxkVHJhbnNsYXRpb25Ub0Nl
bnRlciwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJh
bnNmb3JtKCkpOwpAQCAtMjcwLDEzICsyNzAsMTMgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFyY2h5KQogCiAgICAgLy8gQ2Fz
ZSAzOiBwYXJlbnQncyBsb2NhbCB0cmFuc2Zvcm0gYWZmZWN0cyBjaGlsZCBhbmQgZ3JhbmRjaGls
ZAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHBhcmVudExheWVyVHJhbnNmb3JtOwotICAg
IHBhcmVudExheWVyVHJhbnNmb3JtLnNjYWxlM2QoMi4wLCAyLjAsIDEuMCk7CisgICAgcGFyZW50
TGF5ZXJUcmFuc2Zvcm0uc2NhbGUzZCgyLCAyLCAxKTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBwYXJlbnRUcmFuc2xhdGlvblRvQW5jaG9yOwotICAgIHBhcmVudFRyYW5zbGF0aW9uVG9B
bmNob3IudHJhbnNsYXRlKDIuNSwgMy4wKTsKKyAgICBwYXJlbnRUcmFuc2xhdGlvblRvQW5jaG9y
LnRyYW5zbGF0ZSgyLjUsIDMpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHBhcmVudENv
bXBvc2l0ZVRyYW5zZm9ybSA9IHBhcmVudFRyYW5zbGF0aW9uVG9BbmNob3IgKiBwYXJlbnRMYXll
clRyYW5zZm9ybSAqIHBhcmVudFRyYW5zbGF0aW9uVG9BbmNob3IuaW52ZXJzZSgpOwotICAgIHNl
dExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocGFyZW50LmdldCgpLCBwYXJlbnRMYXllclRyYW5z
Zm9ybSwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4yNWYsIDAuMjVmKSwgRmxvYXRQb2lu
dCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0
cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRT
aXplKDE2LCAxOCksIGZhbHNlKTsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdy
YW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2lu
dCgwLjBmLCAwLjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSg3NiwgNzgpLCBm
YWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIHBh
cmVudExheWVyVHJhbnNmb3JtLCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1
KSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CisgICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2
LCAxOCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hp
bGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAw
KSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0
ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwogICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3Jt
ICogY2hpbGRUcmFuc2xhdGlvblRvQ2VudGVyLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKICAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9y
bSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwpAQCAtMjg4LDE2ICsyODgsMTYgQEAg
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxl
SGllcmFyY2h5KQogICAgIC8vICAgICAgICAgTm90ZSB0aGF0IHByZXNlcnZlczNEIGlzIGZhbHNl
LCBidXQgdGhlIHN1YmxheWVyIG1hdHJpeCBzaG91bGQgcmV0YWluIGl0cyAzRCBwcm9wZXJ0aWVz
IHdoZW4gZ2l2ZW4gdG8gY2hpbGQuCiAgICAgLy8gICAgICAgICBCdXQgdGhlbiwgdGhlIGNoaWxk
IGFsc28gZG9lcyBub3QgcHJlc2VydmUzRC4gV2hlbiBpdCBnaXZlcyBpdHMgaGllcmFyY2h5IHRv
IHRoZSBncmFuZENoaWxkLCBpdCBzaG91bGQgYmUgZmxhdHRlbmVkIHRvIDJELgogICAgIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4IHBhcmVudFN1YmxheWVyTWF0cml4OwotICAgIHBhcmVudFN1Ymxh
eWVyTWF0cml4LnNjYWxlM2QoMTAuMCwgMTAuMCwgMy4zKTsKKyAgICBwYXJlbnRTdWJsYXllck1h
dHJpeC5zY2FsZTNkKDEwLCAxMCwgMy4zKTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBw
YXJlbnRUcmFuc2xhdGlvblRvQ2VudGVyOwotICAgIHBhcmVudFRyYW5zbGF0aW9uVG9DZW50ZXIu
dHJhbnNsYXRlKDUuMCwgNi4wKTsKKyAgICBwYXJlbnRUcmFuc2xhdGlvblRvQ2VudGVyLnRyYW5z
bGF0ZSg1LCA2KTsKICAgICAvLyBTdWJsYXllciBtYXRyaXggaXMgYXBwbGllZCB0byB0aGUgY2Vu
dGVyIG9mIHRoZSBwYXJlbnQgbGF5ZXIuCiAgICAgcGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtID0g
cGFyZW50VHJhbnNsYXRpb25Ub0FuY2hvciAqIHBhcmVudExheWVyVHJhbnNmb3JtICogcGFyZW50
VHJhbnNsYXRpb25Ub0FuY2hvci5pbnZlcnNlKCkKICAgICAgICAgICAgICogcGFyZW50VHJhbnNs
YXRpb25Ub0NlbnRlciAqIHBhcmVudFN1YmxheWVyTWF0cml4ICogcGFyZW50VHJhbnNsYXRpb25U
b0NlbnRlci5pbnZlcnNlKCk7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZmxhdHRlbmVk
Q29tcG9zaXRlVHJhbnNmb3JtID0gcmVtb3ZlM0RDb21wb25lbnRPZk1hdHJpeChwYXJlbnRDb21w
b3NpdGVUcmFuc2Zvcm0pOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocGFyZW50
LmdldCgpLCBwYXJlbnRMYXllclRyYW5zZm9ybSwgcGFyZW50U3VibGF5ZXJNYXRyaXgsIEZsb2F0
UG9pbnQoMC4yNWYsIDAuMjVmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwg
MTIpLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYp
LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKLSAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0
cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgRmxvYXRQb2ludCgw
LjBmLCAwLjBmKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIHBhcmVudExheWVyVHJhbnNmb3JtLCBwYXJlbnRT
dWJsYXllck1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1KSwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGlu
ZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50
KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKKyAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0
cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtICogY2hpbGRUcmFuc2xhdGlvblRv
Q2VudGVyLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJ
T05fTUFUUklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOwpAQCAtMzA2LDkgKzMwNiw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbXBsZUhpZXJhcmNoeSkKIAogICAgIC8vIENh
c2UgNTogc2FtZSBhcyBDYXNlIDQsIGV4Y2VwdCB0aGF0IGNoaWxkIGRvZXMgcHJlc2VydmUgM0Qs
IHNvIHRoZSBncmFuZENoaWxkIHNob3VsZCByZWNlaXZlIHRoZSBub24tZmxhdHRlbmVkIGNvbXBv
c2l0ZSB0cmFuc2Zvcm0uCiAgICAgLy8KLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KHBhcmVudC5nZXQoKSwgcGFyZW50TGF5ZXJUcmFuc2Zvcm0sIHBhcmVudFN1YmxheWVyTWF0cml4
LCBGbG9hdFBvaW50KDAuMjVmLCAwLjI1ZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEludFNp
emUoMTAsIDEyKSwgZmFsc2UpOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hp
bGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBm
LCAwLjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxNiwgMTgpLCB0cnVlKTsK
LSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgRmxvYXRQ
b2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIHBhcmVudExheWVyVHJhbnNmb3JtLCBw
YXJlbnRTdWJsYXllck1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1KSwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9y
VGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIHRydWUpOwor
ICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRp
dHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAs
IDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1Ry
YW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0gKiBjaGlsZFRyYW5zbGF0
aW9uVG9DZW50ZXIsIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSk7CkBAIC0zMjYsMjggKzMyNiwyOCBAQCBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVSZW5kZXJTdXJmYWNlKQog
ICAgIGNoaWxkLT5hZGRDaGlsZChncmFuZENoaWxkKTsKIAogICAgIC8vIENoaWxkIGlzIHNldCB1
cCBzbyB0aGF0IGEgbmV3IHJlbmRlciBzdXJmYWNlIHNob3VsZCBiZSBjcmVhdGVkLgotICAgIGNo
aWxkLT5zZXRPcGFjaXR5KDAuNWYpOworICAgIGNoaWxkLT5zZXRPcGFjaXR5KDAuNSk7CiAKICAg
ICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKICAgICBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBwYXJlbnRMYXllclRyYW5zZm9ybTsKLSAgICBwYXJlbnRMYXllclRyYW5z
Zm9ybS5zY2FsZTNkKDIuMCwgMi4wLCAxLjApOworICAgIHBhcmVudExheWVyVHJhbnNmb3JtLnNj
YWxlM2QoMiwgMiwgMSk7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggcGFyZW50VHJhbnNs
YXRpb25Ub0FuY2hvcjsKLSAgICBwYXJlbnRUcmFuc2xhdGlvblRvQW5jaG9yLnRyYW5zbGF0ZSgy
LjUsIDMuMCk7CisgICAgcGFyZW50VHJhbnNsYXRpb25Ub0FuY2hvci50cmFuc2xhdGUoMi41LCAz
KTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwYXJlbnRTdWJsYXllck1hdHJpeDsKLSAg
ICBwYXJlbnRTdWJsYXllck1hdHJpeC5zY2FsZTNkKDEwLjAsIDEwLjAsIDMuMyk7CisgICAgcGFy
ZW50U3VibGF5ZXJNYXRyaXguc2NhbGUzZCgxMCwgMTAsIDMuMyk7CiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggcGFyZW50VHJhbnNsYXRpb25Ub0NlbnRlcjsKLSAgICBwYXJlbnRUcmFuc2xh
dGlvblRvQ2VudGVyLnRyYW5zbGF0ZSg1LjAsIDYuMCk7CisgICAgcGFyZW50VHJhbnNsYXRpb25U
b0NlbnRlci50cmFuc2xhdGUoNSwgNik7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggcGFy
ZW50Q29tcG9zaXRlVHJhbnNmb3JtID0gcGFyZW50VHJhbnNsYXRpb25Ub0FuY2hvciAqIHBhcmVu
dExheWVyVHJhbnNmb3JtICogcGFyZW50VHJhbnNsYXRpb25Ub0FuY2hvci5pbnZlcnNlKCkKICAg
ICAgICAgICAgICogcGFyZW50VHJhbnNsYXRpb25Ub0NlbnRlciAqIHBhcmVudFN1YmxheWVyTWF0
cml4ICogcGFyZW50VHJhbnNsYXRpb25Ub0NlbnRlci5pbnZlcnNlKCk7CiAgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggY2hpbGRUcmFuc2xhdGlvblRvQ2VudGVyOwotICAgIGNoaWxkVHJhbnNs
YXRpb25Ub0NlbnRlci50cmFuc2xhdGUoOC4wLCA5LjApOworICAgIGNoaWxkVHJhbnNsYXRpb25U
b0NlbnRlci50cmFuc2xhdGUoOCwgOSk7CiAKICAgICAvLyBDaGlsZCdzIHJlbmRlciBzdXJmYWNl
IHNob3VsZCBub3QgZXhpc3QgeWV0LgogICAgIEFTU0VSVF9GQUxTRShjaGlsZC0+cmVuZGVyU3Vy
ZmFjZSgpKTsKIAotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocGFyZW50LmdldCgp
LCBwYXJlbnRMYXllclRyYW5zZm9ybSwgcGFyZW50U3VibGF5ZXJNYXRyaXgsIEZsb2F0UG9pbnQo
MC4yNWYsIDAuMjVmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTIpLCBm
YWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9h
dFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKLSAgICBzZXRMYXll
clByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBp
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgRmxvYXRQb2ludCgtMC41Ziwg
LTAuNWYpLCBJbnRTaXplKDEsIDEpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9y
VGVzdGluZyhwYXJlbnQuZ2V0KCksIHBhcmVudExheWVyVHJhbnNmb3JtLCBwYXJlbnRTdWJsYXll
ck1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1KSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgxMCwgMTIpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGls
ZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDAp
LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKKyAgICBzZXRMYXll
clByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBp
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgtMC41LCAtMC41KSwg
SW50U2l6ZSgxLCAxKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKIAogICAgIC8vIFJlbmRlciBzdXJmYWNlIHNo
b3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBub3cuCkBAIC00MDYsNyArNDA2LDcgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCBzY2lzc29yUmVjdE5vQ2xpcCkKIAogICAgIGNoaWxkLT5z
ZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKICAgICBjaGlsZC0+c2V0UG9zaXRpb24o
RmxvYXRQb2ludChjaGlsZFJlY3QueCgpLCBjaGlsZFJlY3QueSgpKSk7Ci0gICAgY2hpbGQtPnNl
dE9wYWNpdHkoMC41Zik7CisgICAgY2hpbGQtPnNldE9wYWNpdHkoMC41KTsKICAgICBjaGlsZC0+
c2V0Qm91bmRzKEludFNpemUoY2hpbGRSZWN0LndpZHRoKCksIGNoaWxkUmVjdC5oZWlnaHQoKSkp
OwogICAgIGNoaWxkLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAKQEAgLTU4NSw3ICs1ODUsNyBA
QCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHNjaXNzb3JSZWN0V2l0aENsaXApCiAK
ICAgICBjaGlsZC0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7CiAgICAgY2hpbGQt
PnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoY2hpbGRSZWN0LngoKSwgY2hpbGRSZWN0LnkoKSkpOwot
ICAgIGNoaWxkLT5zZXRPcGFjaXR5KDAuNWYpOworICAgIGNoaWxkLT5zZXRPcGFjaXR5KDAuNSk7
CiAgICAgY2hpbGQtPnNldEJvdW5kcyhJbnRTaXplKGNoaWxkUmVjdC53aWR0aCgpLCBjaGlsZFJl
Y3QuaGVpZ2h0KCkpKTsKICAgICBjaGlsZC0+c2V0RHJhd3NDb250ZW50KHRydWUpOwogCkBAIC03
NjcsMTkgKzc2NywxOSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHNjaXNzb3JS
ZWN0V2l0aENsaXBBbmRTcGFjZVRyYW5zZm9ybSkKIAogICAgIGNoaWxkLT5zZXRBbmNob3JQb2lu
dChGbG9hdFBvaW50KDAsIDApKTsKICAgICBjaGlsZC0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChj
aGlsZFJlY3QueCgpLCBjaGlsZFJlY3QueSgpKSk7Ci0gICAgY2hpbGQtPnNldE9wYWNpdHkoMC41
Zik7CisgICAgY2hpbGQtPnNldE9wYWNpdHkoMC41KTsKICAgICBjaGlsZC0+c2V0Qm91bmRzKElu
dFNpemUoY2hpbGRSZWN0LndpZHRoKCksIGNoaWxkUmVjdC5oZWlnaHQoKSkpOwogICAgIGNoaWxk
LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAKICAgICBncmFuZENoaWxkLT5zZXRBbmNob3JQb2lu
dChGbG9hdFBvaW50KDAsIDApKTsKICAgICBncmFuZENoaWxkLT5zZXRQb3NpdGlvbihJbnRQb2lu
dChncmFuZENoaWxkUmVjdC54KCksIGdyYW5kQ2hpbGRSZWN0LnkoKSkpOwotICAgIGdyYW5kQ2hp
bGQtPnNldE9wYWNpdHkoMC41Zik7CisgICAgZ3JhbmRDaGlsZC0+c2V0T3BhY2l0eSgwLjUpOwog
ICAgIGdyYW5kQ2hpbGQtPnNldEJvdW5kcyhJbnRTaXplKGdyYW5kQ2hpbGRSZWN0LndpZHRoKCks
IGdyYW5kQ2hpbGRSZWN0LmhlaWdodCgpKSk7CiAgICAgZ3JhbmRDaGlsZC0+c2V0RHJhd3NDb250
ZW50KHRydWUpOwogCiAgICAgZ3JhbmRDaGlsZDItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQo
MCwgMCkpOwogICAgIGdyYW5kQ2hpbGQyLT5zZXRQb3NpdGlvbihJbnRQb2ludChncmFuZENoaWxk
UmVjdC54KCksIGdyYW5kQ2hpbGRSZWN0LnkoKSkpOwotICAgIGdyYW5kQ2hpbGQyLT5zZXRPcGFj
aXR5KDAuNWYpOworICAgIGdyYW5kQ2hpbGQyLT5zZXRPcGFjaXR5KDAuNSk7CiAgICAgZ3JhbmRD
aGlsZDItPnNldEJvdW5kcyhJbnRTaXplKGdyYW5kQ2hpbGRSZWN0LndpZHRoKCksIGdyYW5kQ2hp
bGRSZWN0LmhlaWdodCgpKSk7CiAgICAgZ3JhbmRDaGlsZDItPnNldERyYXdzQ29udGVudCh0cnVl
KTsKIApAQCAtOTMxLDMyICs5MzEsMzIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yUmVwbGljYSkKICAgICBjaGlsZC0+c2V0UmVwbGljYUxheWVy
KGNoaWxkUmVwbGljYS5nZXQoKSk7CiAKICAgICAvLyBDaGlsZCBpcyBzZXQgdXAgc28gdGhhdCBh
IG5ldyByZW5kZXIgc3VyZmFjZSBzaG91bGQgYmUgY3JlYXRlZC4KLSAgICBjaGlsZC0+c2V0T3Bh
Y2l0eSgwLjVmKTsKKyAgICBjaGlsZC0+c2V0T3BhY2l0eSgwLjUpOwogCiAgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXggcGFyZW50TGF5ZXJUcmFuc2Zvcm07Ci0gICAgcGFyZW50TGF5ZXJUcmFuc2Zvcm0uc2NhbGUz
ZCgyLjAsIDIuMCwgMS4wKTsKKyAgICBwYXJlbnRMYXllclRyYW5zZm9ybS5zY2FsZTNkKDIsIDIs
IDEpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHBhcmVudFRyYW5zbGF0aW9uVG9BbmNo
b3I7Ci0gICAgcGFyZW50VHJhbnNsYXRpb25Ub0FuY2hvci50cmFuc2xhdGUoMi41LCAzLjApOwor
ICAgIHBhcmVudFRyYW5zbGF0aW9uVG9BbmNob3IudHJhbnNsYXRlKDIuNSwgMyk7CiAgICAgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggcGFyZW50U3VibGF5ZXJNYXRyaXg7Ci0gICAgcGFyZW50U3Vi
bGF5ZXJNYXRyaXguc2NhbGUzZCgxMC4wLCAxMC4wLCAzLjMpOworICAgIHBhcmVudFN1YmxheWVy
TWF0cml4LnNjYWxlM2QoMTAsIDEwLCAzLjMpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
IHBhcmVudFRyYW5zbGF0aW9uVG9DZW50ZXI7Ci0gICAgcGFyZW50VHJhbnNsYXRpb25Ub0NlbnRl
ci50cmFuc2xhdGUoNS4wLCA2LjApOworICAgIHBhcmVudFRyYW5zbGF0aW9uVG9DZW50ZXIudHJh
bnNsYXRlKDUsIDYpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHBhcmVudENvbXBvc2l0
ZVRyYW5zZm9ybSA9IHBhcmVudFRyYW5zbGF0aW9uVG9BbmNob3IgKiBwYXJlbnRMYXllclRyYW5z
Zm9ybSAqIHBhcmVudFRyYW5zbGF0aW9uVG9BbmNob3IuaW52ZXJzZSgpCiAgICAgICAgICAgICAq
IHBhcmVudFRyYW5zbGF0aW9uVG9DZW50ZXIgKiBwYXJlbnRTdWJsYXllck1hdHJpeCAqIHBhcmVu
dFRyYW5zbGF0aW9uVG9DZW50ZXIuaW52ZXJzZSgpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IGNoaWxkVHJhbnNsYXRpb25Ub0NlbnRlcjsKLSAgICBjaGlsZFRyYW5zbGF0aW9uVG9DZW50
ZXIudHJhbnNsYXRlKDguMCwgOS4wKTsKKyAgICBjaGlsZFRyYW5zbGF0aW9uVG9DZW50ZXIudHJh
bnNsYXRlKDgsIDkpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHJlcGxpY2FMYXllclRy
YW5zZm9ybTsKLSAgICByZXBsaWNhTGF5ZXJUcmFuc2Zvcm0uc2NhbGUzZCgzLjAsIDMuMCwgMS4w
KTsKKyAgICByZXBsaWNhTGF5ZXJUcmFuc2Zvcm0uc2NhbGUzZCgzLCAzLCAxKTsKICAgICBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeCByZXBsaWNhQ29tcG9zaXRlVHJhbnNmb3JtID0gcGFyZW50Q29t
cG9zaXRlVHJhbnNmb3JtICogcmVwbGljYUxheWVyVHJhbnNmb3JtOwogCiAgICAgLy8gQ2hpbGQn
cyByZW5kZXIgc3VyZmFjZSBzaG91bGQgbm90IGV4aXN0IHlldC4KICAgICBBU1NFUlRfRkFMU0Uo
Y2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7CiAKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0
aW5nKHBhcmVudC5nZXQoKSwgcGFyZW50TGF5ZXJUcmFuc2Zvcm0sIHBhcmVudFN1YmxheWVyTWF0
cml4LCBGbG9hdFBvaW50KDAuMjVmLCAwLjI1ZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIElu
dFNpemUoMTAsIDEyKSwgZmFsc2UpOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
Y2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LjBmLCAwLjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxNiwgMTgpLCBmYWxz
ZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBp
ZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEZs
b2F0UG9pbnQoLTAuNWYsIC0wLjVmKSwgSW50U2l6ZSgxLCAxKSwgZmFsc2UpOwotICAgIHNldExh
eWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGRSZXBsaWNhLmdldCgpLCByZXBsaWNhTGF5ZXJU
cmFuc2Zvcm0sIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBv
aW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDAsIDApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIHBhcmVudExheWVyVHJhbnNmb3JtLCBwYXJl
bnRTdWJsYXllck1hdHJpeCwgRmxvYXRQb2ludCgwLjI1LCAwLjI1KSwgRmxvYXRQb2ludCgwLCAw
KSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVz
dGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBv
aW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKKyAg
ICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5
TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgtMC41
LCAtMC41KSwgSW50U2l6ZSgxLCAxKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0Zv
clRlc3RpbmcoY2hpbGRSZXBsaWNhLmdldCgpLCByZXBsaWNhTGF5ZXJUcmFuc2Zvcm0sIGlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDAs
IDApLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJp
bGl0eShwYXJlbnQuZ2V0KCkpOwogCiAgICAgLy8gUmVuZGVyIHN1cmZhY2Ugc2hvdWxkIGhhdmUg
YmVlbiBjcmVhdGVkIG5vdy4KQEAgLTEwMDAsOCArMTAwMCw4IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkp
CiAgICAgcmVuZGVyU3VyZmFjZTItPnNldFJlcGxpY2FMYXllcihyZXBsaWNhT2ZSUzIuZ2V0KCkp
OwogCiAgICAgLy8gSW4gY29tYmluYXRpb24gd2l0aCBkZXNjZW5kYW50RHJhd3NDb250ZW50LCBv
cGFjaXR5ICE9IDEgZm9yY2VzIHRoZSBsYXllciB0byBoYXZlIGEgbmV3IHJlbmRlclN1cmZhY2Uu
Ci0gICAgcmVuZGVyU3VyZmFjZTEtPnNldE9wYWNpdHkoMC41Zik7Ci0gICAgcmVuZGVyU3VyZmFj
ZTItPnNldE9wYWNpdHkoMC4zM2YpOworICAgIHJlbmRlclN1cmZhY2UxLT5zZXRPcGFjaXR5KDAu
NSk7CisgICAgcmVuZGVyU3VyZmFjZTItPnNldE9wYWNpdHkoMC4zMyk7CiAKICAgICAvLyBBbGwg
bGF5ZXJzIGluIHRoZSB0cmVlIGFyZSBpbml0aWFsaXplZCB3aXRoIGFuIGFuY2hvciBhdCAuMjUg
YW5kIGEgc2l6ZSBvZiAoMTAsMTApLgogICAgIC8vIG1hdHJpeCAiQSIgaXMgdGhlIGNvbXBvc2l0
ZSBsYXllciB0cmFuc2Zvcm0gdXNlZCBpbiBhbGwgbGF5ZXJzLCBjZW50ZXJlZCBhYm91dCB0aGUg
YW5jaG9yIHBvaW50CkBAIC0xMDA5LDMzICsxMDA5LDMzIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCiAg
ICAgLy8gbWF0cml4ICJSIiBpcyB0aGUgY29tcG9zaXRlIHJlcGxpY2EgdHJhbnNmb3JtIHVzZWQg
aW4gYWxsIHJlcGxpY2EgbGF5ZXJzLgogICAgIC8vCiAgICAgLy8geCBjb21wb25lbnQgdGVzdHMg
dGhhdCBsYXllclRyYW5zZm9ybSBhbmQgc3VibGF5ZXJUcmFuc2Zvcm0gYXJlIGRvbmUgaW4gdGhl
IHJpZ2h0IG9yZGVyICh0cmFuc2xhdGlvbiBhbmQgc2NhbGUgYXJlIG5vbmNvbW11dGF0aXZlKS4K
LSAgICAvLyB5IGNvbXBvbmVudCBoYXMgYSB0cmFuc2xhdGlvbiBieSAxLjAgZm9yIGV2ZXJ5IGFu
Y2VzdG9yLCB3aGljaCBpbmRpY2F0ZXMgdGhlICJkZXB0aCIgb2YgdGhlIGxheWVyIGluIHRoZSBo
aWVyYXJjaHkuCisgICAgLy8geSBjb21wb25lbnQgaGFzIGEgdHJhbnNsYXRpb24gYnkgMSBmb3Ig
ZXZlcnkgYW5jZXN0b3IsIHdoaWNoIGluZGljYXRlcyB0aGUgImRlcHRoIiBvZiB0aGUgbGF5ZXIg
aW4gdGhlIGhpZXJhcmNoeS4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2xhdGlv
blRvQW5jaG9yOwotICAgIHRyYW5zbGF0aW9uVG9BbmNob3IudHJhbnNsYXRlKDIuNSwgMC4wKTsK
KyAgICB0cmFuc2xhdGlvblRvQW5jaG9yLnRyYW5zbGF0ZSgyLjUsIDApOwogICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IHRyYW5zbGF0aW9uVG9DZW50ZXI7Ci0gICAgdHJhbnNsYXRpb25Ub0Nl
bnRlci50cmFuc2xhdGUoNS4wLCA1LjApOworICAgIHRyYW5zbGF0aW9uVG9DZW50ZXIudHJhbnNs
YXRlKDUsIDUpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtOwot
ICAgIGxheWVyVHJhbnNmb3JtLnRyYW5zbGF0ZSgxLjAsIDEuMCk7CisgICAgbGF5ZXJUcmFuc2Zv
cm0udHJhbnNsYXRlKDEsIDEpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHN1YmxheWVy
VHJhbnNmb3JtOwotICAgIHN1YmxheWVyVHJhbnNmb3JtLnNjYWxlM2QoMTAuMCwgMS4wLCAxLjAp
OworICAgIHN1YmxheWVyVHJhbnNmb3JtLnNjYWxlM2QoMTAsIDEsIDEpOwogICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IHJlcGxpY2FMYXllclRyYW5zZm9ybTsKLSAgICByZXBsaWNhTGF5ZXJU
cmFuc2Zvcm0uc2NhbGUzZCgtMi4wLCA1LjAsIDEuMCk7CisgICAgcmVwbGljYUxheWVyVHJhbnNm
b3JtLnNjYWxlM2QoLTIsIDUsIDEpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQSA9
IHRyYW5zbGF0aW9uVG9BbmNob3IgKiBsYXllclRyYW5zZm9ybSAqIHRyYW5zbGF0aW9uVG9BbmNo
b3IuaW52ZXJzZSgpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEIgPSB0cmFuc2xhdGlv
blRvQ2VudGVyICogc3VibGF5ZXJUcmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQ2VudGVyLmludmVy
c2UoKTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSID0gQSAqIHRyYW5zbGF0aW9uVG9B
bmNob3IgKiByZXBsaWNhTGF5ZXJUcmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yLmludmVy
c2UoKTsKIAotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocGFyZW50LmdldCgpLCBs
YXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYp
LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKLSAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJlbmRlclN1cmZhY2UxLmdldCgpLCBsYXllclRy
YW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9h
dFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKLSAgICBzZXRMYXll
clByb3BlcnRpZXNGb3JUZXN0aW5nKHJlbmRlclN1cmZhY2UyLmdldCgpLCBsYXllclRyYW5zZm9y
bSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50
KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKLSAgICBzZXRMYXllclByb3Bl
cnRpZXNGb3JUZXN0aW5nKGNoaWxkT2ZSb290LmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5
ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAu
MGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKGNoaWxkT2ZSUzEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9y
bSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEludFNp
emUoMTAsIDEwKSwgZmFsc2UpOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hp
bGRPZlJTMi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBv
aW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTAp
LCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkT2ZS
b290LmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQo
MC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZh
bHNlKTsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGRPZlJTMS5n
ZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVm
LCAwLjBmKSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7
Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkT2ZSUzIuZ2V0KCks
IGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4w
ZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwotICAg
IHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVwbGljYU9mUlMxLmdldCgpLCByZXBsaWNh
TGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBm
KSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgpLCBmYWxzZSk7Ci0gICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZXBsaWNhT2ZSUzIuZ2V0KCksIHJlcGxpY2FMYXllclRy
YW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9h
dFBvaW50KDAuMGYsIDAuMGYpLCBJbnRTaXplKCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3Bl
cnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJh
bnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEw
LCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJlbmRlclN1
cmZhY2UxLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9p
bnQoMC4yNSwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwor
ICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3VyZmFjZTIuZ2V0KCksIGxh
eWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1LCAwKSwgRmxv
YXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1Ymxh
eWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRT
aXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNo
aWxkT2ZSUzEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQ
b2ludCgwLjI1LCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7
CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUlMyLmdldCgpLCBsYXll
clRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNSwgMCksIEZsb2F0
UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVy
dGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1
YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJ
bnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KGdyYW5kQ2hpbGRPZlJTMS5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3Jt
LCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMCks
IGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGRPZlJT
Mi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAu
MjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJlcGxpY2FPZlJTMS5nZXQoKSwgcmVwbGljYUxh
eWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1LCAwKSwgRmxv
YXRQb2ludCgwLCAwKSwgSW50U2l6ZSgpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVz
Rm9yVGVzdGluZyhyZXBsaWNhT2ZSUzIuZ2V0KCksIHJlcGxpY2FMYXllclRyYW5zZm9ybSwgc3Vi
bGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNSwgMCksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoKSwgZmFsc2UpOwogCiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5k
VmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwogCkBAIC0xMTEzLDE3ICsxMTEzLDE3IEBAIFRFU1Qo
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZh
Y2VIaWVyYXJjaHkpCiAgICAgLy8gU2FuaXR5IGNoZWNrLiBJZiB0aGVzZSBmYWlsIHRoZXJlIGlz
IHByb2JhYmx5IGEgYnVnIGluIHRoZSB0ZXN0IGl0c2VsZi4KICAgICAvLyBJdCBpcyBleHBlY3Rl
ZCB0aGF0IHdlIGNvcnJlY3RseSBzZXQgdXAgdHJhbnNmb3JtcyBzbyB0aGF0IHRoZSB5LWNvbXBv
bmVudCBvZiB0aGUgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybQogICAgIC8vIGVuY29kZXMgdGhlICJk
ZXB0aCIgb2YgdGhlIGxheWVyIGluIHRoZSB0cmVlLgotICAgIEVYUEVDVF9GTE9BVF9FUSgxLjAs
IHBhcmVudC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7Ci0gICAgRVhQRUNUX0ZMT0FU
X0VRKDIuMCwgY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSgzLjAsIGdyYW5kQ2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgxLCBwYXJlbnQtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgyLCBjaGlsZE9mUm9vdC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDMsIGdy
YW5kQ2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwogCi0gICAgRVhQ
RUNUX0ZMT0FUX0VRKDIuMCwgcmVuZGVyU3VyZmFjZTEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCku
bTQyKCkpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzLjAsIGNoaWxkT2ZSUzEtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkubTQyKCkpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0LjAsIGdyYW5kQ2hpbGRP
ZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VR
KDIsIHJlbmRlclN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEoMywgY2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIo
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDQsIGdyYW5kQ2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKS5tNDIoKSk7CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMy4wLCByZW5kZXJTdXJm
YWNlMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VR
KDQuMCwgY2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7Ci0gICAgRVhQ
RUNUX0ZMT0FUX0VRKDUuMCwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgp
Lm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMywgcmVuZGVyU3VyZmFjZTItPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSg0LCBjaGlsZE9mUlMy
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNSwg
Z3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKIH0KIAogVEVT
VChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlTGlzdEZvckNs
aXBMYXllcikKQEAgLTExMzEsNyArMTEzMSw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5UmVuZGVyU3VyZmFjZUxpc3RGb3JDbGlwTGF5ZXIpCiAgICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IHBhcmVudCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0
cjxMYXllckNocm9taXVtPiByZW5kZXJTdXJmYWNlMSA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgp
OwogICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudD4gY2hpbGQg
PSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQoKSk7Ci0g
ICAgcmVuZGVyU3VyZmFjZTEtPnNldE9wYWNpdHkoMC45Zik7CisgICAgcmVuZGVyU3VyZmFjZTEt
PnNldE9wYWNpdHkoMC45KTsKIAogICAgIGNvbnN0IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGlk
ZW50aXR5TWF0cml4OwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3Vy
ZmFjZTEuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludDo6
emVybygpLCBGbG9hdFBvaW50Ojp6ZXJvKCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwpAQCAt
MTg1NCw5ICsxODU0LDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlD
bGlwUmVjdEN1bGxzUmVuZGVyU3VyZmFjZXMpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVz
dGluZyhsZWFmTm9kZTIuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxv
YXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMCwgMjApLCBmYWxzZSk7
CiAKICAgICBjaGlsZC0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKLSAgICBjaGlsZC0+c2V0T3Bh
Y2l0eSgwLjRmKTsKLSAgICBncmFuZENoaWxkLT5zZXRPcGFjaXR5KDAuNWYpOwotICAgIGdyZWF0
R3JhbmRDaGlsZC0+c2V0T3BhY2l0eSgwLjRmKTsKKyAgICBjaGlsZC0+c2V0T3BhY2l0eSgwLjQp
OworICAgIGdyYW5kQ2hpbGQtPnNldE9wYWNpdHkoMC41KTsKKyAgICBncmVhdEdyYW5kQ2hpbGQt
PnNldE9wYWNpdHkoMC40KTsKIAogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0OwogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
PiBkdW1teUxheWVyTGlzdDsKQEAgLTE5MDcsOSArMTkwNyw5IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5Q2xpcFJlY3RDdWxsc1JlbmRlclN1cmZhY2VzQ3Jhc2hSZXBy
bykKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxlYWZOb2RlMi5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDAsIDApLCBJbnRTaXplKDIwLCAyMCksIGZhbHNlKTsKIAogICAgIGNoaWxkLT5zZXRNYXNrc1Rv
Qm91bmRzKHRydWUpOwotICAgIGNoaWxkLT5zZXRPcGFjaXR5KDAuNGYpOwotICAgIGdyYW5kQ2hp
bGQtPnNldE9wYWNpdHkoMC41Zik7Ci0gICAgZ3JlYXRHcmFuZENoaWxkLT5zZXRPcGFjaXR5KDAu
NGYpOworICAgIGNoaWxkLT5zZXRPcGFjaXR5KDAuNCk7CisgICAgZ3JhbmRDaGlsZC0+c2V0T3Bh
Y2l0eSgwLjUpOworICAgIGdyZWF0R3JhbmRDaGlsZC0+c2V0T3BhY2l0eSgwLjQpOwogCiAgICAg
Ly8gQ29udGFtaW5hdGUgdGhlIGdyYW5kQ2hpbGQgYW5kIGdyZWF0R3JhbmRDaGlsZCdzIGNsaXBS
ZWN0IHRvIHJlcHJvZHVjZSB0aGUgY3Jhc2gKICAgICAvLyBidWcgZm91bmQgaW4gaHR0cDovL2Nv
ZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTA2NzM0LiBJbiB0aGlz
CkBAIC0xOTcxLDggKzE5NzEsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeUNsaXBSZWN0Q3VsbHNTdXJmYWNlV2l0aG91dFZpc2libGVDb250ZW50KQogICAgIHNldExh
eWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGVhZk5vZGUuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBp
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgxMCwgMTApLCBmYWxzZSk7CiAKICAgICBwYXJlbnQtPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7
Ci0gICAgY2hpbGQtPnNldE9wYWNpdHkoMC40Zik7Ci0gICAgZ3JhbmRDaGlsZC0+c2V0T3BhY2l0
eSgwLjRmKTsKKyAgICBjaGlsZC0+c2V0T3BhY2l0eSgwLjQpOworICAgIGdyYW5kQ2hpbGQtPnNl
dE9wYWNpdHkoMC40KTsKIAogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiByZW5k
ZXJTdXJmYWNlTGF5ZXJMaXN0OwogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBk
dW1teUxheWVyTGlzdDsKQEAgLTIwNDcsMTEgKzIwNDcsMTEgQEAgVEVTVChDQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LCB2ZXJpZnlDbGlwUmVjdElzUHJvcGFnYXRlZENvcnJlY3RseVRvTGF5ZXJz
KQogICAgIGdyYW5kQ2hpbGQ0LT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwogCiAgICAgLy8gRm9y
Y2UgZXZlcnlvbmUgdG8gYmUgYSByZW5kZXIgc3VyZmFjZS4KLSAgICBjaGlsZC0+c2V0T3BhY2l0
eSgwLjRmKTsKLSAgICBncmFuZENoaWxkMS0+c2V0T3BhY2l0eSgwLjVmKTsKLSAgICBncmFuZENo
aWxkMi0+c2V0T3BhY2l0eSgwLjVmKTsKLSAgICBncmFuZENoaWxkMy0+c2V0T3BhY2l0eSgwLjVm
KTsKLSAgICBncmFuZENoaWxkNC0+c2V0T3BhY2l0eSgwLjVmKTsKKyAgICBjaGlsZC0+c2V0T3Bh
Y2l0eSgwLjQpOworICAgIGdyYW5kQ2hpbGQxLT5zZXRPcGFjaXR5KDAuNSk7CisgICAgZ3JhbmRD
aGlsZDItPnNldE9wYWNpdHkoMC41KTsKKyAgICBncmFuZENoaWxkMy0+c2V0T3BhY2l0eSgwLjUp
OworICAgIGdyYW5kQ2hpbGQ0LT5zZXRPcGFjaXR5KDAuNSk7CiAKICAgICBWZWN0b3I8UmVmUHRy
PExheWVyQ2hyb21pdW0+ID4gcmVuZGVyU3VyZmFjZUxheWVyTGlzdDsKICAgICBWZWN0b3I8UmVm
UHRyPExheWVyQ2hyb21pdW0+ID4gZHVtbXlMYXllckxpc3Q7CkBAIC0yMTIyLDExICsyMTIyLDEx
IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5Q2xpcFJlY3RJc1Byb3Bh
Z2F0ZWRDb3JyZWN0bHlUb1N1cmZhY2VzKQogICAgIGdyYW5kQ2hpbGQ0LT5zZXRNYXNrc1RvQm91
bmRzKHRydWUpOwogCiAgICAgLy8gRm9yY2UgZXZlcnlvbmUgdG8gYmUgYSByZW5kZXIgc3VyZmFj
ZS4KLSAgICBjaGlsZC0+c2V0T3BhY2l0eSgwLjRmKTsKLSAgICBncmFuZENoaWxkMS0+c2V0T3Bh
Y2l0eSgwLjVmKTsKLSAgICBncmFuZENoaWxkMi0+c2V0T3BhY2l0eSgwLjVmKTsKLSAgICBncmFu
ZENoaWxkMy0+c2V0T3BhY2l0eSgwLjVmKTsKLSAgICBncmFuZENoaWxkNC0+c2V0T3BhY2l0eSgw
LjVmKTsKKyAgICBjaGlsZC0+c2V0T3BhY2l0eSgwLjQpOworICAgIGdyYW5kQ2hpbGQxLT5zZXRP
cGFjaXR5KDAuNSk7CisgICAgZ3JhbmRDaGlsZDItPnNldE9wYWNpdHkoMC41KTsKKyAgICBncmFu
ZENoaWxkMy0+c2V0T3BhY2l0eSgwLjUpOworICAgIGdyYW5kQ2hpbGQ0LT5zZXRPcGFjaXR5KDAu
NSk7CiAKICAgICBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4gcmVuZGVyU3VyZmFjZUxh
eWVyTGlzdDsKICAgICBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4gZHVtbXlMYXllckxp
c3Q7CkBAIC0yMTg5LDkgKzIxODksOSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5KQogICAgIGFkZE9wYWNp
dHlUcmFuc2l0aW9uVG9Db250cm9sbGVyKCpncmFuZENoaWxkT2ZSb290LT5sYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIoKSwgMTAsIDEsIDAsIGZhbHNlKTsKIAogICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IGxheWVyVHJhbnNmb3JtOwotICAgIGxheWVyVHJhbnNmb3JtLnRyYW5zbGF0ZSgxLjAs
IDEuMCk7CisgICAgbGF5ZXJUcmFuc2Zvcm0udHJhbnNsYXRlKDEsIDEpOwogICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IHN1YmxheWVyVHJhbnNmb3JtOwotICAgIHN1YmxheWVyVHJhbnNmb3Jt
LnNjYWxlM2QoMTAuMCwgMS4wLCAxLjApOworICAgIHN1YmxheWVyVHJhbnNmb3JtLnNjYWxlM2Qo
MTAsIDEsIDEpOwogCiAgICAgLy8gUHV0IGEgdHJhbnNmb3JtIGFuaW1hdGlvbiBvbiB0aGUgcmVu
ZGVyIHN1cmZhY2UuCiAgICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRyb2xsZXIoKnJlbmRl
clN1cmZhY2UyLT5sYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKSwgMTAsIDMwLCAwKTsKQEAgLTIy
MDAsMTUgKzIyMDAsMTUgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlB
bmltYXRpb25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICBhZGRBbmltYXRlZFRyYW5z
Zm9ybVRvQ29udHJvbGxlcigqZ3JhbmRDaGlsZE9mUm9vdC0+bGF5ZXJBbmltYXRpb25Db250cm9s
bGVyKCksIDEwLCAzMCwgMCk7CiAgICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRyb2xsZXIo
KmdyYW5kQ2hpbGRPZlJTMi0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEwLCAzMCwgMCk7
CiAKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQoKSwgbGF5ZXJU
cmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxv
YXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Ci0gICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNlMS5nZXQoKSwgbGF5ZXJUcmFuc2Zv
cm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2lu
dCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNlMi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1
YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVm
LCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVz
Rm9yVGVzdGluZyhjaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJh
bnNmb3JtLCBGbG9hdFBvaW50KDAuMjVmLCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwg
SW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGlu
ZyhjaGlsZE9mUlMxLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZs
b2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBGbG9hdFBvaW50KDIuNWYsIDAuMGYpLCBJbnRTaXplKDEw
LCAxMCksIGZhbHNlKTsKLSAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkT2ZS
UzIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgw
LjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFs
c2UpOwotICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZE9mUm9vdC5n
ZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjVm
LCAwLjBmKSwgRmxvYXRQb2ludCgyLjVmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7
Ci0gICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkT2ZSUzEuZ2V0KCks
IGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4w
ZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwotICAg
IHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZE9mUlMyLmdldCgpLCBsYXll
clRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNWYsIDAuMGYpLCBG
bG9hdFBvaW50KDIuNWYsIDAuMGYpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKyAgICBzZXRM
YXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1
YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDIuNSwgMCks
IEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rp
bmcocmVuZGVyU3VyZmFjZTEuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9y
bSwgRmxvYXRQb2ludCgwLjI1LCAwKSwgRmxvYXRQb2ludCgyLjUsIDApLCBJbnRTaXplKDEwLCAx
MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJlbmRlclN1cmZh
Y2UyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQo
MC4yNSwgMCksIEZsb2F0UG9pbnQoMi41LCAwKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7Cisg
ICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZE9mUm9vdC5nZXQoKSwgbGF5ZXJU
cmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBv
aW50KDIuNSwgMCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVy
dGllc0ZvclRlc3RpbmcoY2hpbGRPZlJTMS5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVy
VHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDIuNSwgMCksIEludFNp
emUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hp
bGRPZlJTMi5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBv
aW50KDAuMjUsIDApLCBGbG9hdFBvaW50KDIuNSwgMCksIEludFNpemUoMTAsIDEwKSwgZmFsc2Up
OworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZE9mUm9vdC5nZXQo
KSwgbGF5ZXJUcmFuc2Zvcm0sIHN1YmxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAuMjUsIDAp
LCBGbG9hdFBvaW50KDIuNSwgMCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExh
eWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZE9mUlMxLmdldCgpLCBsYXllclRyYW5z
Zm9ybSwgc3VibGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMC4yNSwgMCksIEZsb2F0UG9pbnQo
Mi41LCAwKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVz
Rm9yVGVzdGluZyhncmFuZENoaWxkT2ZSUzIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXll
clRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1LCAwKSwgRmxvYXRQb2ludCgyLjUsIDApLCBJbnRT
aXplKDEwLCAxMCksIGZhbHNlKTsKIAogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKIApAQCAtMjI4NiwxNyArMjI4NiwxNyBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJT
dXJmYWNlSGllcmFyY2h5KQogICAgIC8vIFNhbml0eSBjaGVjay4gSWYgdGhlc2UgZmFpbCB0aGVy
ZSBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgdGVzdCBpdHNlbGYuCiAgICAgLy8gSXQgaXMgZXhw
ZWN0ZWQgdGhhdCB3ZSBjb3JyZWN0bHkgc2V0IHVwIHRyYW5zZm9ybXMgc28gdGhhdCB0aGUgeS1j
b21wb25lbnQgb2YgdGhlIHNjcmVlbi1zcGFjZSB0cmFuc2Zvcm0KICAgICAvLyBlbmNvZGVzIHRo
ZSAiZGVwdGgiIG9mIHRoZSBsYXllciBpbiB0aGUgdHJlZS4KLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MS4wLCBwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwotICAgIEVYUEVDVF9G
TE9BVF9FUSgyLjAsIGNoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoMy4wLCBncmFuZENoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMSwgcGFyZW50LT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMiwgY2hpbGRPZlJv
b3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgz
LCBncmFuZENoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKIAotICAg
IEVYUEVDVF9GTE9BVF9FUSgyLjAsIHJlbmRlclN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpLm00MigpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMy4wLCBjaGlsZE9mUlMxLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpLm00MigpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNC4wLCBncmFuZENo
aWxkT2ZSUzEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9B
VF9FUSgyLCByZW5kZXJTdXJmYWNlMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7Cisg
ICAgRVhQRUNUX0ZMT0FUX0VRKDMsIGNoaWxkT2ZSUzEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCku
bTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSg0LCBncmFuZENoaWxkT2ZSUzEtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkubTQyKCkpOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDMuMCwgcmVuZGVy
U3VyZmFjZTItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwotICAgIEVYUEVDVF9GTE9B
VF9FUSg0LjAsIGNoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSg1LjAsIGdyYW5kQ2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDMsIHJlbmRlclN1cmZhY2UyLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNCwgY2hpbGRP
ZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VR
KDUsIGdyYW5kQ2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5tNDIoKSk7CiB9CiAK
IFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JJZGVu
dGl0eVRyYW5zZm9ybSkKQEAgLTIzOTQsNyArMjM5NCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IyRFJvdGF0aW9ucykKICAgICAvLyAgICAg
ICAgIG92ZXJsYXBzIHRoZSByaWdodCBzaWRlIG9mIHRoZSBsYXllci4gVGhlIHZpc2libGUgcmVj
dCBzaG91bGQgYmUgdGhlCiAgICAgLy8gICAgICAgICBsYXllcidzIHJpZ2h0IGhhbGYuCiAgICAg
bGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7Ci0gICAgbGF5ZXJUb1N1cmZh
Y2VUcmFuc2Zvcm0udHJhbnNsYXRlKDAsIC1zcXJ0KDIuMCkgKiAxNSk7CisgICAgbGF5ZXJUb1N1
cmZhY2VUcmFuc2Zvcm0udHJhbnNsYXRlKDAsIC1zcXJ0KDIpICogMTUpOwogICAgIGxheWVyVG9T
dXJmYWNlVHJhbnNmb3JtLnJvdGF0ZSg0NSk7CiAgICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBv
aW50KDE1LCAwKSwgSW50U2l6ZSgxNSwgMzApKTsgLy8gcmlnaHQgaGFsZiBvZiBsYXllciBib3Vu
ZHMuCiAgICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxl
UmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VU
cmFuc2Zvcm0pOwpAQCAtMjQxOSw3ICsyNDE5LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkT3J0aG9ncmFwaGljVHJhbnNmb3JtKQogICAg
IC8vIENhc2UgMjogT3J0aG9ncmFwaGljIHByb2plY3Rpb24gb2YgYSBsYXllciByb3RhdGVkIGFi
b3V0IHktYXhpcyBieSA0NSBkZWdyZWVzLCBidXQKICAgICAvLyAgICAgICAgIHNoaWZ0ZWQgdG8g
dGhlIHNpZGUgc28gb25seSB0aGUgcmlnaHQtaGFsZiB0aGUgbGF5ZXIgd291bGQgYmUgdmlzaWJs
ZSBvbgogICAgIC8vICAgICAgICAgdGhlIHN1cmZhY2UuCi0gICAgZG91YmxlIGhhbGZXaWR0aE9m
Um90YXRlZExheWVyID0gKDEwMC4wIC8gc3FydCgyLjApKSAqIDAuNTsgLy8gMTAwLjAgaXMgdGhl
IHVuLXJvdGF0ZWQgbGF5ZXIgd2lkdGg7IGRpdmlkZWQgYnkgc3FydCgyLjApIGlzIHRoZSByb3Rh
dGVkIHdpZHRoLgorICAgIGRvdWJsZSBoYWxmV2lkdGhPZlJvdGF0ZWRMYXllciA9ICgxMDAgLyBz
cXJ0KDIpKSAqIDAuNTsgLy8gMTAwIGlzIHRoZSB1bi1yb3RhdGVkIGxheWVyIHdpZHRoOyBkaXZp
ZGVkIGJ5IHNxcnQoMikgaXMgdGhlIHJvdGF0ZWQgd2lkdGguCiAgICAgbGF5ZXJUb1N1cmZhY2VU
cmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0udHJh
bnNsYXRlKC1oYWxmV2lkdGhPZlJvdGF0ZWRMYXllciwgMCk7CiAgICAgbGF5ZXJUb1N1cmZhY2VU
cmFuc2Zvcm0ucm90YXRlM2QoMCwgNDUsIDApOyAvLyByb3RhdGVzIGFib3V0IHRoZSBsZWZ0IGVk
Z2Ugb2YgdGhlIGxheWVyCkBAIC0yNjAwLDggKzI2MDAsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QsIHZlcmlmeUJhY2tGYWNlQ3VsbGluZ1dpdGhvdXRQcmVzZXJ2ZXMzZCkKICAg
ICBiYWNrZmFjZU1hdHJpeC50cmFuc2xhdGUoLTUwLCAtNTApOwogCiAgICAgLy8gSGF2aW5nIGEg
ZGVzY2VuZGFudCBhbmQgb3BhY2l0eSB3aWxsIGZvcmNlIHRoZXNlIHRvIGhhdmUgcmVuZGVyIHN1
cmZhY2VzLgotICAgIGZyb250RmFjaW5nU3VyZmFjZS0+c2V0T3BhY2l0eSgwLjVmKTsKLSAgICBi
YWNrRmFjaW5nU3VyZmFjZS0+c2V0T3BhY2l0eSgwLjVmKTsKKyAgICBmcm9udEZhY2luZ1N1cmZh
Y2UtPnNldE9wYWNpdHkoMC41KTsKKyAgICBiYWNrRmFjaW5nU3VyZmFjZS0+c2V0T3BhY2l0eSgw
LjUpOwogCiAgICAgLy8gTm90aGluZyBwcmVzZXJ2ZXMgM2QuIEFjY29yZGluZyB0byBjdXJyZW50
IFczQyBDU1MgVHJhbnNmb3JtcyBzcGVjLCB0aGVzZSBsYXllcnMKICAgICAvLyBzaG91bGQgYmxp
bmRseSB1c2UgdGhlaXIgb3duIGxvY2FsIHRyYW5zZm9ybXMgdG8gZGV0ZXJtaW5lIGJhY2stZmFj
ZSBjdWxsaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1
YWRDdWxsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3Vs
bGVyVGVzdC5jcHAKaW5kZXggZTFkOWZiMzY3N2Y2MDU3MWJlMGJiZmQzODQyYjMxMzA5MDc3NGYw
ZC4uYTI2ODA0MDI1MmRmNDNlNDdkNjllNTZmZjIwYTQ5YjM4NmEyNThhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwCkBAIC0xMjEs
OCArMTIxLDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb0N1bGxpbmcpCiB7CiAg
ICAgREVDTEFSRV9BTkRfSU5JVElBTElaRV9URVNUX1FVQURTCiAKLSAgICBPd25QdHI8Q0NUaWxl
ZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4KCksIHJvb3RSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCk7Ci0gICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5
ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3Qs
IDEuMCwgZmFsc2UsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3du
UHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VMYXllcigwLCBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9
IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNo
aWxkUmVjdCwgMSwgZmFsc2UsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAg
ICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0x
MDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBlIGl0ID0gQ0NM
YXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogCkBAIC0x
MzgsOCArMTM4LDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2hpbGRMaW5l
c1VwVG9wTGVmdCkKIHsKICAgICBERUNMQVJFX0FORF9JTklUSUFMSVpFX1RFU1RfUVVBRFMKIAot
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hp
bGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4KCksIGNoaWxkUmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXll
ckxpc3QpOworICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5
ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJl
Y3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllcklt
cGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpLCBjaGlsZFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFj
ZUxheWVyTGlzdCk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJh
Y2tlcihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0
b3JUeXBlIGl0ID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXll
ckxpc3QpOwogCkBAIC0xNzIsOCArMTcyLDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJp
ZnlDdWxsV2hlbkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQogewogICAgIERFQ0xBUkVfQU5EX0lOSVRJ
QUxJWkVfVEVTVF9RVUFEUwogCi0gICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXll
ciA9IG1ha2VMYXllcigwLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMS4w
LCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwotICAgIE93blB0cjxD
Q1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwg
Y2hpbGRUcmFuc2Zvcm0sIGNoaWxkUmVjdCwgMS4wLCBmYWxzZSwgSW50UmVjdCgpLCByZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVy
ID0gbWFrZUxheWVyKDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHJvb3RSZWN0LCAxLCB0
cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAgIE93blB0cjxDQ1Rp
bGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwgY2hp
bGRUcmFuc2Zvcm0sIGNoaWxkUmVjdCwgMSwgZmFsc2UsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFj
ZUxheWVyTGlzdCk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJh
Y2tlcihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0
b3JUeXBlIGl0ID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXll
ckxpc3QpOwogCkBAIC0xOTEsOCArMTkxLDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJp
ZnlDdWxsQ2VudGVyVGlsZU9ubHkpCiAKICAgICBjaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUoNTAs
IDUwKTsKIAotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5
ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50
UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKLSAgICBPd25QdHI8Q0NUaWxlZExheWVy
SW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJhbnNm
b3JtLCBjaGlsZFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJM
aXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVy
KDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHJvb3RSZWN0LCAxLCB0cnVlLCBJbnRSZWN0
KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBs
PiBjaGlsZExheWVyID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwgY2hpbGRUcmFuc2Zvcm0s
IGNoaWxkUmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsK
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKEludFJlY3Qo
LTEwMCwgLTEwMCwgMTAwMCwgMTAwMCkpOwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBD
Q0xheWVySXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAg
LTIzNCw4ICsyMzQsOCBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJU
aWxlTm9uSW50ZWdyYWxTaXplMSkKIAogICAgIHJvb3RSZWN0ID0gY2hpbGRSZWN0ID0gSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCk7CiAKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExh
eWVyID0gbWFrZUxheWVyKDAsIHJvb3RUcmFuc2Zvcm0sIHJvb3RSZWN0LCAxLjAsIHRydWUsIElu
dFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7Ci0gICAgT3duUHRyPENDVGlsZWRMYXll
ckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBjaGlsZFRyYW5z
Zm9ybSwgY2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VMYXll
cigwLCByb290VHJhbnNmb3JtLCByb290UmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXll
ciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJhbnNmb3JtLCBjaGlsZFJlY3Qs
IDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0xMDAsIC0xMDAs
IDEwMDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBlIGl0ID0gQ0NMYXllckl0ZXJh
dG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogCkBAIC0yNjIsOCArMjYy
LDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVn
cmFsU2l6ZTIpCiAKICAgICByb290UmVjdCA9IGNoaWxkUmVjdCA9IEludFJlY3QoMCwgMCwgMTAw
LCAxMDApOwogCi0gICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VM
YXllcigwLCByb290VHJhbnNmb3JtLCByb290UmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJl
bmRlclN1cmZhY2VMYXllckxpc3QpOwotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGls
ZExheWVyID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwgY2hpbGRUcmFuc2Zvcm0sIGNoaWxk
UmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAg
IE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgcm9vdFRy
YW5zZm9ybSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5
ZXIocm9vdExheWVyLmdldCgpLCBjaGlsZFRyYW5zZm9ybSwgY2hpbGRSZWN0LCAxLCB0cnVlLCBJ
bnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJJbXBsIG9jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAw
KSk7CiAgICAgQ0NMYXllckl0ZXJhdG9yVHlwZSBpdCA9IENDTGF5ZXJJdGVyYXRvclR5cGU6OmJl
Z2luKCZyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKIApAQCAtMjgyLDggKzI4Miw4IEBAIFRFU1Qo
Q0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENoaWxkTGluZXNVcEJvdHRvbVJpZ2h0KQogCiAg
ICAgY2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKDEwMCwgMTAwKTsKIAotICAgIE93blB0cjxDQ1Rp
bGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5
ZXJMaXN0KTsKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VM
YXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJhbnNmb3JtLCBjaGlsZFJlY3QsIDEuMCwgdHJ1
ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxl
ZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4KCksIHJvb3RSZWN0LCAxLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxp
c3QpOworICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVy
KHJvb3RMYXllci5nZXQoKSwgY2hpbGRUcmFuc2Zvcm0sIGNoaWxkUmVjdCwgMSwgdHJ1ZSwgSW50
UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VySW1wbCBvY2NsdXNpb25UcmFja2VyKEludFJlY3QoLTEwMCwgLTEwMCwgMTAwMCwgMTAwMCkp
OwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xheWVySXRlcmF0b3JUeXBlOjpiZWdp
bigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAgLTMwMSw5ICszMDEsOSBAQCBURVNUKEND
UXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24pCiAKICAgICBjaGlsZFRyYW5zZm9y
bS50cmFuc2xhdGUoNTAsIDUwKTsKIAotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290
TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3Qs
IDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25Q
dHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAsIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4KCksIHJvb3RSZWN0LCAxLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZh
Y2VMYXllckxpc3QpOwogICAgIEludFJlY3QgY2hpbGRPcGFxdWVSZWN0KGNoaWxkUmVjdC54KCkg
KyBjaGlsZFJlY3Qud2lkdGgoKSAvIDQsIGNoaWxkUmVjdC55KCkgKyBjaGlsZFJlY3QuaGVpZ2h0
KCkgLyA0LCBjaGlsZFJlY3Qud2lkdGgoKSAvIDIsIGNoaWxkUmVjdC5oZWlnaHQoKSAvIDIpOwot
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVyKHJvb3RM
YXllci5nZXQoKSwgY2hpbGRUcmFuc2Zvcm0sIGNoaWxkUmVjdCwgMS4wLCBmYWxzZSwgY2hpbGRP
cGFxdWVSZWN0LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExh
eWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJh
bnNmb3JtLCBjaGlsZFJlY3QsIDEsIGZhbHNlLCBjaGlsZE9wYXF1ZVJlY3QsIHJlbmRlclN1cmZh
Y2VMYXllckxpc3QpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRy
YWNrZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAgICAgQ0NMYXllckl0ZXJh
dG9yVHlwZSBpdCA9IENDTGF5ZXJJdGVyYXRvclR5cGU6OmJlZ2luKCZyZW5kZXJTdXJmYWNlTGF5
ZXJMaXN0KTsKIApAQCAtMzIxLDkgKzMyMSw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVy
aWZ5Q3VsbFN1YlJlZ2lvbjIpCiAKICAgICBjaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUoNTAsIDEw
KTsKIAotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIo
MCwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVj
dCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1w
bD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHJv
b3RSZWN0LCAxLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogICAg
IEludFJlY3QgY2hpbGRPcGFxdWVSZWN0KGNoaWxkUmVjdC54KCkgKyBjaGlsZFJlY3Qud2lkdGgo
KSAvIDQsIGNoaWxkUmVjdC55KCkgKyBjaGlsZFJlY3QuaGVpZ2h0KCkgLyA0LCBjaGlsZFJlY3Qu
d2lkdGgoKSAvIDIsIGNoaWxkUmVjdC5oZWlnaHQoKSAqIDMgLyA0KTsKLSAgICBPd25QdHI8Q0NU
aWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNo
aWxkVHJhbnNmb3JtLCBjaGlsZFJlY3QsIDEuMCwgZmFsc2UsIGNoaWxkT3BhcXVlUmVjdCwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxk
TGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBjaGlsZFRyYW5zZm9ybSwgY2hpbGRS
ZWN0LCAxLCBmYWxzZSwgY2hpbGRPcGFxdWVSZWN0LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsK
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKEludFJlY3Qo
LTEwMCwgLTEwMCwgMTAwMCwgMTAwMCkpOwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBD
Q0xheWVySXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAg
LTM0MSw5ICszNDEsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdp
b25DaGVja092ZXJjdWxsKQogCiAgICAgY2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKDUwLCA0OSk7
CiAKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAs
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHJvb3RSZWN0LCAxLjAsIHRydWUsIEludFJlY3Qo
KSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+
IHJvb3RMYXllciA9IG1ha2VMYXllcigwLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290
UmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBJ
bnRSZWN0IGNoaWxkT3BhcXVlUmVjdChjaGlsZFJlY3QueCgpICsgY2hpbGRSZWN0LndpZHRoKCkg
LyA0LCBjaGlsZFJlY3QueSgpICsgY2hpbGRSZWN0LmhlaWdodCgpIC8gNCwgY2hpbGRSZWN0Lndp
ZHRoKCkgLyAyLCBjaGlsZFJlY3QuaGVpZ2h0KCkgLyAyKTsKLSAgICBPd25QdHI8Q0NUaWxlZExh
eWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJh
bnNmb3JtLCBjaGlsZFJlY3QsIDEuMCwgZmFsc2UsIGNoaWxkT3BhcXVlUmVjdCwgcmVuZGVyU3Vy
ZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIg
PSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBjaGlsZFRyYW5zZm9ybSwgY2hpbGRSZWN0LCAx
LCBmYWxzZSwgY2hpbGRPcGFxdWVSZWN0LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKEludFJlY3QoLTEwMCwg
LTEwMCwgMTAwMCwgMTAwMCkpOwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xheWVy
SXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAgLTM2Miw4
ICszNjIsOCBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVh
ZHNEb250T2NjbHVkZSkKICAgICAvLyBVc2UgYSBzbWFsbCByb3RhdGlvbiBzbyBhcyB0byBub3Qg
ZGlzdHVyYiB0aGUgZ2VvbWV0cnkgc2lnbmlmaWNhbnRseS4KICAgICBjaGlsZFRyYW5zZm9ybS5y
b3RhdGUoMSk7CiAKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVyID0gbWFr
ZUxheWVyKDAsIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHJvb3RSZWN0LCAxLjAsIHRydWUs
IEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7Ci0gICAgT3duUHRyPENDVGlsZWRM
YXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBjaGlsZFRy
YW5zZm9ybSwgY2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxh
eWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VM
YXllcigwLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMSwgdHJ1ZSwgSW50
UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVy
SW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIGNoaWxkVHJhbnNm
b3JtLCBjaGlsZFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dCk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRS
ZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBlIGl0
ID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3QpOwog
CkBAIC0zODgsOCArMzg4LDggQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlz
QWxpZ25lZFF1YWRzU2FmZWx5Q3VsbGVkKQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHBh
cmVudFRyYW5zZm9ybTsKICAgICBwYXJlbnRUcmFuc2Zvcm0ucm90YXRlKDEpOwogCi0gICAgT3du
UHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VMYXllcigwLCBwYXJlbnRUcmFu
c2Zvcm0sIHJvb3RSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCk7Ci0gICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5
ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3Qs
IDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25Q
dHI8Q0NUaWxlZExheWVySW1wbD4gcm9vdExheWVyID0gbWFrZUxheWVyKDAsIHBhcmVudFRyYW5z
Zm9ybSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIo
cm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3QsIDEs
IHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0xMDAsIC0xMDAsIDEw
MDAsIDEwMDApKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBlIGl0ID0gQ0NMYXllckl0ZXJhdG9y
VHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogCkBAIC00MDUsOCArNDA1LDgg
QEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyVGls
ZSkKIHsKICAgICBERUNMQVJFX0FORF9JTklUSUFMSVpFX1RFU1RfUVVBRFMKIAotICAgIE93blB0
cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0KTsKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9
IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNo
aWxkUmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwor
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxk
TGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgpLCBjaGlsZFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dCk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRS
ZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBD
Q0xheWVySXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAg
LTQyMiw4ICs0MjIsOCBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRl
U2Npc3Nvck92ZXJDdWxsZWRUaWxlKQogewogICAgIERFQ0xBUkVfQU5EX0lOSVRJQUxJWkVfVEVT
VF9RVUFEUwogCi0gICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VM
YXllcigwLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMS4wLCB0cnVlLCBJ
bnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwotICAgIE93blB0cjxDQ1RpbGVkTGF5
ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXgoKSwgY2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVy
U3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXll
ciA9IG1ha2VMYXllcigwLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMSwg
dHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NU
aWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNoaWxkUmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBv
Y2NsdXNpb25UcmFja2VyKEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKSk7CiAgICAgQ0NMYXll
ckl0ZXJhdG9yVHlwZSBpdCA9IENDTGF5ZXJJdGVyYXRvclR5cGU6OmJlZ2luKCZyZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0KTsKIApAQCAtNDM5LDggKzQzOSw4IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVz
dCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlclBhcnRpYWxUaWxlcykKIHsKICAgICBERUNM
QVJFX0FORF9JTklUSUFMSVpFX1RFU1RfUVVBRFMKIAotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJ
bXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwg
cm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsK
LSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihyb290
TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNoaWxkUmVjdCwgMS4wLCB0
cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAgIE93blB0cjxDQ1Rp
bGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXgoKSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5
ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3Qs
IDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KDUwLCA1MCwgMjAw
LCAyMDApKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBlIGl0ID0gQ0NMYXllckl0ZXJhdG9yVHlw
ZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogCkBAIC00NTYsOCArNDU2LDggQEAg
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyTm9UaWxl
cykKIHsKICAgICBERUNMQVJFX0FORF9JTklUSUFMSVpFX1RFU1RfUVVBRFMKIAotICAgIE93blB0
cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0KTsKLSAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9
IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNo
aWxkUmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwor
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiByb290TGF5ZXIgPSBtYWtlTGF5ZXIoMCwgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgcm9vdFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCk7CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IGNoaWxk
TGF5ZXIgPSBtYWtlTGF5ZXIocm9vdExheWVyLmdldCgpLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgpLCBjaGlsZFJlY3QsIDEsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dCk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRS
ZWN0KDUwMCwgNTAwLCAxMDAsIDEwMCkpOwogICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBD
Q0xheWVySXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKQEAg
LTQ3Myw4ICs0NzMsOCBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeVdpdGhvdXRNZXRy
aWNzKQogewogICAgIERFQ0xBUkVfQU5EX0lOSVRJQUxJWkVfVEVTVF9RVUFEUwogCi0gICAgT3du
UHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VMYXllcigwLCBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMS4wLCB0cnVlLCBJbnRSZWN0KCksIHJlbmRlclN1
cmZhY2VMYXllckxpc3QpOwotICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVy
ID0gbWFrZUxheWVyKHJvb3RMYXllci5nZXQoKSwgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwg
Y2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7
CisgICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHJvb3RMYXllciA9IG1ha2VMYXllcigwLCBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCByb290UmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hp
bGRMYXllciA9IG1ha2VMYXllcihyb290TGF5ZXIuZ2V0KCksIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4KCksIGNoaWxkUmVjdCwgMSwgdHJ1ZSwgSW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJM
aXN0KTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKElu
dFJlY3QoNTAsIDUwLCAyMDAsIDIwMCksIGZhbHNlKTsKICAgICBDQ0xheWVySXRlcmF0b3JUeXBl
IGl0ID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJnJlbmRlclN1cmZhY2VMYXllckxpc3Qp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21p
dW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRl
c3QuY3BwCmluZGV4IGE3OTRhMjg0NmFhZWQzZDE5N2MzYjkyNzI4ZjVhZDU1ZTE5MWU4NjAuLmI5
ZTI4MWUwZDVmNWNlYTFkMTQ4NDI1MmFlYWI0ODBjNjRmNWIwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC00NDAsMTAg
KzQ0MCwxMCBAQCBURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrU2V0TmVlZHNEaXNwbGF5
Q2F1c2VzQ29ycmVjdEJlaGF2aW9yKQogCiAgICAgSW50U2l6ZSB0ZXN0Qm91bmRzID0gSW50U2l6
ZSg1MDEsIDUwOCk7CiAKLSAgICBGbG9hdFJlY3QgZGlydHkxID0gRmxvYXRSZWN0KDEwLjBmLCAx
NS4wZiwgMS4wZiwgMi4wZik7Ci0gICAgRmxvYXRSZWN0IGRpcnR5MiA9IEZsb2F0UmVjdCgyMC4w
ZiwgMjUuMGYsIDMuMGYsIDQuMGYpOwotICAgIEZsb2F0UmVjdCBlbXB0eURpcnR5UmVjdCA9IEZs
b2F0UmVjdCg0MC4wZiwgNDUuMGYsIDAsIDApOwotICAgIEZsb2F0UmVjdCBvdXRPZkJvdW5kc0Rp
cnR5UmVjdCA9IEZsb2F0UmVjdCg0MDAuMGYsIDQwNS4wZiwgNTAwLjBmLCA1MDIuMGYpOworICAg
IEZsb2F0UmVjdCBkaXJ0eTEgPSBGbG9hdFJlY3QoMTAsIDE1LCAxLCAyKTsKKyAgICBGbG9hdFJl
Y3QgZGlydHkyID0gRmxvYXRSZWN0KDIwLCAyNSwgMywgNCk7CisgICAgRmxvYXRSZWN0IGVtcHR5
RGlydHlSZWN0ID0gRmxvYXRSZWN0KDQwLCA0NSwgMCwgMCk7CisgICAgRmxvYXRSZWN0IG91dE9m
Qm91bmRzRGlydHlSZWN0ID0gRmxvYXRSZWN0KDQwMCwgNDA1LCA1MDAsIDUwMik7CiAKICAgICAv
LyBCZWZvcmUgYW55dGhpbmcsIHRlc3RMYXllciBzaG91bGQgbm90IGJlIGRpcnR5LgogICAgIEVY
UEVDVF9GQUxTRSh0ZXN0TGF5ZXItPm5lZWRzRGlzcGxheSgpKTsKQEAgLTQ5Nyw3ICs0OTcsNyBA
QCBURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrUHJvcGVydHlDaGFuZ2VDYXVzZXNDb3Jy
ZWN0QmVoYXZpb3IpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVI
QVZJT1IoMCwgdGVzdExheWVyLT5zZXRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCA0
MCwgNTApKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJ
T1IoMCwgdGVzdExheWVyLT5zZXRVc2VzTGF5ZXJDbGlwcGluZyh0cnVlKSk7CiAgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMCwgdGVzdExheWVyLT5zZXRJ
c05vbkNvbXBvc2l0ZWRDb250ZW50KHRydWUpKTsKLSAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VU
X05FRURTX0NPTU1JVF9CRUhBVklPUigwLCB0ZXN0TGF5ZXItPnNldERyYXdPcGFjaXR5KDAuNWYp
KTsKKyAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigwLCB0
ZXN0TGF5ZXItPnNldERyYXdPcGFjaXR5KDAuNSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
RVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDAsIHRlc3RMYXllci0+c2V0Q2xpcFJlY3QoSW50UmVj
dCgzLCAzLCA4LCA4KSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlU
X0JFSEFWSU9SKDAsIHRlc3RMYXllci0+c2V0UmVuZGVyVGFyZ2V0KDApKTsKICAgICBFWEVDVVRF
X0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigwLCB0ZXN0TGF5ZXItPnNldERy
YXdUcmFuc2Zvcm0oV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkpOwpAQCAtNTA3LDE0ICs1MDcs
MTQgQEAgVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3BlcnR5Q2hhbmdlQ2F1c2Vz
Q29ycmVjdEJlaGF2aW9yKQogCiAgICAgLy8gTmV4dCwgdGVzdCBwcm9wZXJ0aWVzIHRoYXQgc2hv
dWxkIGNhbGwgc2V0TmVlZHNDb21taXQgKGJ1dCBub3Qgc2V0TmVlZHNEaXNwbGF5KQogICAgIC8v
IEFsbCBwcm9wZXJ0aWVzIG5lZWQgdG8gYmUgc2V0IHRvIG5ldyB2YWx1ZXMgaW4gb3JkZXIgZm9y
IHNldE5lZWRzQ29tbWl0IHRvIGJlIGNhbGxlZC4KLSAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VU
X05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0
UG9pbnQoMS4yM2YsIDQuNTZmKSkpOwotICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNf
Q09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0QW5jaG9yUG9pbnRaKDAuN2YpKTsKKyAg
ICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5
ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMS4yMywgNC41NikpKTsKKyAgICBFWEVDVVRF
X0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldEFu
Y2hvclBvaW50WigwLjcpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1J
VF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihTS19Db2xvckxUR1JB
WSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEs
IHRlc3RMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVS
SUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRNYXNrTGF5ZXIo
ZHVtbXlMYXllci5nZXQoKSkpOwotICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09N
TUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0T3BhY2l0eSgwLjVmKSk7CisgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRP
cGFjaXR5KDAuNSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JF
SEFWSU9SKDEsIHRlc3RMYXllci0+c2V0T3BhcXVlKHRydWUpKTsKLSAgICBFWEVDVVRFX0FORF9W
RVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFBvc2l0aW9u
KEZsb2F0UG9pbnQoNC4wZiwgOS4wZikpKTsKKyAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05F
RURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQo
NCwgOSkpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklP
UigxLCB0ZXN0TGF5ZXItPnNldFJlcGxpY2FMYXllcihkdW1teUxheWVyLmdldCgpKSk7CiAgICAg
RVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVy
LT5zZXRTdWJsYXllclRyYW5zZm9ybShXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCgwLCAwLCAwLCAw
LCAwLCAwKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFW
SU9SKDEsIHRlc3RMYXllci0+c2V0U2Nyb2xsYWJsZSh0cnVlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVz
dC5jcHAKaW5kZXggOTM3Y2VlMjAyYTZjYzVhNmM2NDAwOGM3MmI0YzA2MTQ4NWM5NWQ4MC4uZjRl
NzFiNGMxN2JhZjM0YjQ4NTEwYjhkOGQxZGUwMWQ2OTM3ZDE3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhU
ZXN0LmNwcApAQCAtOTc5LDcgKzk3OSw3IEBAIFRFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhU
ZXN0LCB2ZXJpZnlJc0ludGVnZXJUcmFuc2xhdGlvbikKICAgICBFWFBFQ1RfVFJVRShBLmlzSW50
ZWdlclRyYW5zbGF0aW9uKCkpOwogCiAgICAgQS5tYWtlSWRlbnRpdHkoKTsKLSAgICBBLnRyYW5z
bGF0ZSgyLjAsIDMuMCk7CisgICAgQS50cmFuc2xhdGUoMiwgMyk7CiAgICAgRVhQRUNUX1RSVUUo
QS5pc0ludGVnZXJUcmFuc2xhdGlvbigpKTsKIAogICAgIEEubWFrZUlkZW50aXR5KCk7CkBAIC0x
MTgzLDcgKzExODMsNyBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5
QmxlbmRGb3JSb3RhdGlvbkFib3V0WCkKICAgICBFWFBFQ1RfUk9XM19ORUFSKDAsIHNpbihleHBl
Y3RlZFJvdGF0aW9uQW5nbGUpLCAgY29zKGV4cGVjdGVkUm90YXRpb25BbmdsZSksIDAsIHRvLCBF
UlJPUl9USFJFU0hPTEQpOwogICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIHRvKTsKIAot
ICAgIGV4cGVjdGVkUm90YXRpb25BbmdsZSA9IDQ1LjAgKiBwaURvdWJsZSAvIDE4MC4wOworICAg
IGV4cGVjdGVkUm90YXRpb25BbmdsZSA9IDQ1ICogcGlEb3VibGUgLyAxODAuMDsKICAgICB0by5t
YWtlSWRlbnRpdHkoKTsKICAgICB0by5yb3RhdGUzZCgxLCAwLCAwLCA5MCk7CiAgICAgdG8uYmxl
bmQoZnJvbSwgMC41KTsKQEAgLTEyMjIsNyArMTIyMiw3IEBAIFRFU1QoV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZvclJvdGF0aW9uQWJvdXRZKQogICAgIEVYUEVDVF9S
T1czX05FQVIoLXNpbihleHBlY3RlZFJvdGF0aW9uQW5nbGUpLCAwLCBjb3MoZXhwZWN0ZWRSb3Rh
dGlvbkFuZ2xlKSwgMCwgdG8sIEVSUk9SX1RIUkVTSE9MRCk7CiAgICAgRVhQRUNUX1JPVzRfRVEo
MCwgMCwgMCwgMSwgdG8pOwogCi0gICAgZXhwZWN0ZWRSb3RhdGlvbkFuZ2xlID0gNDUuMCAqIHBp
RG91YmxlIC8gMTgwLjA7CisgICAgZXhwZWN0ZWRSb3RhdGlvbkFuZ2xlID0gNDUgKiBwaURvdWJs
ZSAvIDE4MC4wOwogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnJvdGF0ZTNkKDAsIDEs
IDAsIDkwKTsKICAgICB0by5ibGVuZChmcm9tLCAwLjUpOwpAQCAtMTI2MSw3ICsxMjYxLDcgQEAg
VEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yUm90YXRpb25B
Ym91dFopCiAgICAgRVhQRUNUX1JPVzNfTkVBUigwLCAwLCAxLCAwLCB0bywgRVJST1JfVEhSRVNI
T0xEKTsKICAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCB0byk7CiAKLSAgICBleHBlY3Rl
ZFJvdGF0aW9uQW5nbGUgPSA0NS4wICogcGlEb3VibGUgLyAxODAuMDsKKyAgICBleHBlY3RlZFJv
dGF0aW9uQW5nbGUgPSA0NSAqIHBpRG91YmxlIC8gMTgwLjA7CiAgICAgdG8ubWFrZUlkZW50aXR5
KCk7CiAgICAgdG8ucm90YXRlM2QoMCwgMCwgMSwgOTApOwogICAgIHRvLmJsZW5kKGZyb20sIDAu
NSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>