<?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>74905</bug_id>
          
          <creation_ts>2011-12-19 19:21:48 -0800</creation_ts>
          <short_desc>Remove unused code for non-speculative Arith operations from DFG JIT</short_desc>
          <delta_ts>2011-12-19 20:36:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Yuqiang Xian">yuqiang.xian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524382</commentid>
    <comment_count>0</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-12-19 19:21:48 -0800</bug_when>
    <thetext>The code is never used and in fact is wrong especially for the 32_64 version, for example the nonSpeculativeBasicArithOp may require 6 GPRs while there are only 5 available on X86. So just remove such code to avoid potential confusions.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524384</commentid>
    <comment_count>1</comment_count>
      <attachid>119974</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-12-19 19:24:55 -0800</bug_when>
    <thetext>Created attachment 119974
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524408</commentid>
    <comment_count>2</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-12-19 20:35:39 -0800</bug_when>
    <thetext>Landed as r103299: http://trac.webkit.org/changeset/103299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524409</commentid>
    <comment_count>3</comment_count>
      <attachid>119974</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-12-19 20:36:20 -0800</bug_when>
    <thetext>Comment on attachment 119974
the patch

clearing flags.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119974</attachid>
            <date>2011-12-19 19:24:55 -0800</date>
            <delta_ts>2011-12-19 20:36:20 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>74905.patch</filename>
            <type>text/plain</type>
            <size>24724</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMjk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTEyLTE5ICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29tPgorCisg
ICAgICAgIFJlbW92ZSB1bnVzZWQgY29kZSBmb3Igbm9uLXNwZWN1bGF0aXZlIEFyaXRoIG9wZXJh
dGlvbnMgZnJvbSBERkcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NDkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcDoKKwogMjAxMS0xMi0xOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc0OTAzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDEwMzI4MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ3MSwzNzQgKzQ3MSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlVUlu
dDMKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIo
KSwgbV9jb21waWxlSW5kZXgpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxh
dGl2ZUtub3duQ29uc3RhbnRBcml0aE9wKE5vZGVUeXBlIG9wLCBOb2RlSW5kZXggcmVnQ2hpbGQs
IE5vZGVJbmRleCBpbW1DaGlsZCwgYm9vbCBjb21tdXRlKQotewotICAgIEpTVmFsdWVPcGVyYW5k
IHJlZ0FyZyh0aGlzLCByZWdDaGlsZCk7Ci0gICAgcmVnQXJnLmZpbGwoKTsKLSAgICAKLSAgICBp
ZiAocmVnQXJnLmlzRG91YmxlKCkpIHsKLSAgICAgICAgRlBSUmVnIHJlZ0FyZ0ZQUiA9IHJlZ0Fy
Zy5mcHIoKTsKLSAgICAgICAgRlBSVGVtcG9yYXJ5IGltbSh0aGlzKTsKLSAgICAgICAgRlBSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCByZWdBcmcpOwotICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRj
aCh0aGlzKTsKLSAgICAgICAgRlBSUmVnIGltbUZQUiA9IGltbS5mcHIoKTsKLSAgICAgICAgRlBS
UmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKLSAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIg
PSBzY3JhdGNoLmdwcigpOwotICAgICAgICB1c2UocmVnQ2hpbGQpOwotICAgICAgICB1c2UoaW1t
Q2hpbGQpOwotCi0gICAgICAgIGludDMyX3QgaW1tMzIgPSB2YWx1ZU9mSW50MzJDb25zdGFudChp
bW1DaGlsZCk7Ci0gICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKGltbTMyKSwgc2NyYXRj
aEdQUik7Ci0gICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hHUFIsIGlt
bUZQUik7Ci0KLSAgICAgICAgc3dpdGNoIChvcCkgewotICAgICAgICBjYXNlIFZhbHVlQWRkOgot
ICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHJlZ0Fy
Z0ZQUiwgaW1tRlBSLCByZXN1bHRGUFIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAot
ICAgICAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICAgICAgbV9qaXQuc3ViRG91YmxlKHJlZ0Fy
Z0ZQUiwgaW1tRlBSLCByZXN1bHRGUFIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbV9jb21waWxlSW5k
ZXgsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBHUFJSZWcgcmVnQXJnVGFnR1BSID0gcmVnQXJnLnRhZ0dQUigpOwotICAgIEdQUlJl
ZyByZWdBcmdQYXlsb2FkR1BSID0gcmVnQXJnLnBheWxvYWRHUFIoKTsKLSAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0VGFnKHRoaXMsIHJlZ0FyZyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxv
YWQodGhpcywgcmVnQXJnLCBmYWxzZSk7Ci0gICAgR1BSUmVnIHJlc3VsdFRhZ0dQUiA9IHJlc3Vs
dFRhZy5ncHIoKTsKLSAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQu
Z3ByKCk7Ci0gICAgRlBSVGVtcG9yYXJ5IHRtcDEodGhpcyk7Ci0gICAgRlBSVGVtcG9yYXJ5IHRt
cDIodGhpcyk7Ci0gICAgRlBSUmVnIHRtcDFGUFIgPSB0bXAxLmZwcigpOwotICAgIEZQUlJlZyB0
bXAyRlBSID0gdG1wMi5mcHIoKTsKLSAgICB1c2UocmVnQ2hpbGQpOwotICAgIHVzZShpbW1DaGls
ZCk7Ci0KLSAgICBKSVRDb21waWxlcjo6SnVtcCBub3RJbnQ7Ci0gICAgaW50MzJfdCBpbW0gPSB2
YWx1ZU9mSW50MzJDb25zdGFudChpbW1DaGlsZCk7Ci0KLSAgICBpZiAoIWlzS25vd25OdW1lcmlj
KHJlZ0NoaWxkKSkKLSAgICAgICAgbm90SW50ID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCByZWdBcmdUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRh
ZykpOwotICAgIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIG92ZXJmbG93OwotCi0gICAgc3dpdGNo
IChvcCkgewotICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgY2FzZSBBcml0aEFkZDoKLSAgICAgICAg
b3ZlcmZsb3cgPSBtX2ppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJl
Z0FyZ1BheWxvYWRHUFIsIEltbTMyKGltbSksIHJlc3VsdFBheWxvYWRHUFIpOwotICAgICAgICBi
cmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgb3ZlcmZsb3cgPSBt
X2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlZ0FyZ1BheWxvYWRH
UFIsIEltbTMyKGltbSksIHJlc3VsdFBheWxvYWRHUFIpOwotICAgICAgICBicmVhazsKLSAgICAg
ICAgCi0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQot
Ci0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCByZXN1bHRU
YWdHUFIpOwotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7Ci0gICAg
Ci0gICAgb3ZlcmZsb3cubGluaygmbV9qaXQpOwotICAgIC8vIGZpcnN0IGRlYWwgd2l0aCBvdmVy
ZmxvdyBjYXNlCi0gICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUocmVnQXJnUGF5bG9hZEdQ
UiwgdG1wMkZQUik7Ci0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoaW1tKSwgcmVzdWx0UGF5
bG9hZEdQUik7Ci0gICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUocmVzdWx0UGF5bG9hZEdQ
UiwgdG1wMUZQUik7Ci0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAg
Y2FzZSBBcml0aEFkZDoKLSAgICAgICAgbV9qaXQuYWRkRG91YmxlKHRtcDFGUFIsIHRtcDJGUFIp
OwotICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAg
bV9qaXQuc3ViRG91YmxlKHRtcDFGUFIsIHRtcDJGUFIpOwotICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IH0KLSAgICAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lQ2FzZUNvbnZlcnRlZFRvSW50Owot
ICAgIAotICAgIGlmIChvcCA9PSBWYWx1ZUFkZCkgewotICAgICAgICBKSVRDb21waWxlcjo6SnVt
cExpc3QgZmFpbHVyZUNhc2VzOwotICAgICAgICBtX2ppdC5icmFuY2hDb252ZXJ0RG91YmxlVG9J
bnQzMih0bXAyRlBSLCByZXN1bHRQYXlsb2FkR1BSLCBmYWlsdXJlQ2FzZXMsIHRtcDFGUFIpOwot
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHJlc3Vs
dFRhZ0dQUik7Ci0gICAgICAgIGRvbmVDYXNlQ29udmVydGVkVG9JbnQgPSBtX2ppdC5qdW1wKCk7
Ci0gICAgICAgIAotICAgICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9qaXQpOwotICAgIH0KLSAg
ICAKLSAgICBib3hEb3VibGUodG1wMkZQUiwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BS
KTsKLSAgICAgICAgCi0gICAgaWYgKCFpc0tub3duTnVtZXJpYyhyZWdDaGlsZCkpIHsKLSAgICAg
ICAgQVNTRVJUKG5vdEludC5pc1NldCgpKTsKLSAgICAgICAgQVNTRVJUKG9wID09IFZhbHVlQWRk
KTsKLSAgICAgICAgICAgIAotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lQ2FzZVdhc051
bWJlciA9IG1faml0Lmp1bXAoKTsKLSAgICAgICAgICAgIAotICAgICAgICBub3RJbnQubGluaygm
bV9qaXQpOwotICAgICAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJl
c3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7Ci0gICAgICAgIGlmIChjb21tdXRlKQotICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlciwgcmVzdWx0
VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tMzIoaW1tKSwgcmVn
QXJnVGFnR1BSLCByZWdBcmdQYXlsb2FkR1BSKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlciwgcmVzdWx0VGFnR1BSLCBy
ZXN1bHRQYXlsb2FkR1BSLCByZWdBcmdUYWdHUFIsIHJlZ0FyZ1BheWxvYWRHUFIsIE1hY3JvQXNz
ZW1ibGVyOjpJbW0zMihpbW0pKTsKLSAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1
bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwotICAgICAgICAgICAgCi0gICAgICAgIGRvbmVD
YXNlV2FzTnVtYmVyLmxpbmsoJm1faml0KTsKLSAgICB9Ci0gICAgCi0gICAgZG9uZS5saW5rKCZt
X2ppdCk7Ci0gICAgaWYgKGRvbmVDYXNlQ29udmVydGVkVG9JbnQuaXNTZXQoKSkKLSAgICAgICAg
ZG9uZUNhc2VDb252ZXJ0ZWRUb0ludC5saW5rKCZtX2ppdCk7Ci0KLSAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7Ci19Ci0KLXZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1
bGF0aXZlQmFzaWNBcml0aE9wKE5vZGVUeXBlIG9wLCBOb2RlICZub2RlKQotewotICAgIEpTVmFs
dWVPcGVyYW5kIGFyZzEodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgSlNWYWx1ZU9wZXJhbmQg
YXJnMih0aGlzLCBub2RlLmNoaWxkMigpKTsKLSAgICBhcmcxLmZpbGwoKTsKLSAgICBhcmcyLmZp
bGwoKTsKLQotICAgIGlmIChhcmcxLmlzRG91YmxlKCkgJiYgYXJnMi5pc0RvdWJsZSgpKSB7Ci0g
ICAgICAgIEZQUlJlZyBhcmcxRlBSID0gYXJnMS5mcHIoKTsKLSAgICAgICAgRlBSUmVnIGFyZzJG
UFIgPSBhcmcyLmZwcigpOwotICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGFyZzEp
OwotICAgICAgICBhcmcxLnVzZSgpOwotICAgICAgICBhcmcyLnVzZSgpOwotICAgICAgICBzd2l0
Y2ggKG9wKSB7Ci0gICAgICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhBZGQ6
Ci0gICAgICAgICAgICBtX2ppdC5hZGREb3VibGUoYXJnMUZQUiwgYXJnMkZQUiwgcmVzdWx0LmZw
cigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJp
dGhTdWI6Ci0gICAgICAgICAgICBtX2ppdC5zdWJEb3VibGUoYXJnMUZQUiwgYXJnMkZQUiwgcmVz
dWx0LmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgQXJpdGhNdWw6Ci0gICAgICAgICAgICBtX2ppdC5tdWxEb3VibGUoYXJnMUZQUiwgYXJnMkZQ
UiwgcmVzdWx0LmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
fQotCi0gICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHQuZnByKCksIG1fY29tcGlsZUluZGV4LCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgRlBSVGVtcG9yYXJ5IHRtcDEodGhpcyk7Ci0gICAgRlBSVGVtcG9yYXJ5IHRtcDIodGhpcyk7
Ci0gICAgRlBSUmVnIHRtcDFGUFIgPSB0bXAxLmZwcigpOwotICAgIEZQUlJlZyB0bXAyRlBSID0g
dG1wMi5mcHIoKTsKLSAgICAKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIGFyZzEu
aXNEb3VibGUoKSA/IGFyZzIgOiBhcmcxKTsKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9h
ZCh0aGlzLCBhcmcxLmlzRG91YmxlKCkgPyBhcmcyIDogYXJnMSwgZmFsc2UpOwotICAgIEdQUlJl
ZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7Ci0gICAgR1BSUmVnIHJlc3VsdFBheWxv
YWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOwotCi0gICAgR1BSUmVnIGFyZzFUYWdHUFIgPSBJ
bnZhbGlkR1BSUmVnOwotICAgIEdQUlJlZyBhcmcxUGF5bG9hZEdQUiA9IEludmFsaWRHUFJSZWc7
Ci0gICAgR1BSUmVnIGFyZzJUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgIEdQUlJlZyBhcmcy
UGF5bG9hZEdQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgR1BSVGVtcG9yYXJ5IHRtcFRhZyh0aGlz
KTsKLSAgICBHUFJUZW1wb3JhcnkgdG1wUGF5bG9hZCh0aGlzKTsKLQotICAgIGlmIChhcmcxLmlz
RG91YmxlKCkpIHsKLSAgICAgICAgYXJnMVRhZ0dQUiA9IHRtcFRhZy5ncHIoKTsKLSAgICAgICAg
YXJnMVBheWxvYWRHUFIgPSB0bXBQYXlsb2FkLmdwcigpOwotICAgICAgICBib3hEb3VibGUoYXJn
MS5mcHIoKSwgYXJnMVRhZ0dQUiwgYXJnMVBheWxvYWRHUFIpOwotICAgICAgICBhcmcyVGFnR1BS
ID0gYXJnMi50YWdHUFIoKTsKLSAgICAgICAgYXJnMlBheWxvYWRHUFIgPSBhcmcyLnBheWxvYWRH
UFIoKTsKLSAgICB9IGVsc2UgaWYgKGFyZzIuaXNEb3VibGUoKSkgewotICAgICAgICBhcmcxVGFn
R1BSID0gYXJnMS50YWdHUFIoKTsKLSAgICAgICAgYXJnMVBheWxvYWRHUFIgPSBhcmcxLnBheWxv
YWRHUFIoKTsKLSAgICAgICAgYXJnMlRhZ0dQUiA9IHRtcFRhZy5ncHIoKTsKLSAgICAgICAgYXJn
MlBheWxvYWRHUFIgPSB0bXBQYXlsb2FkLmdwcigpOwotICAgICAgICBib3hEb3VibGUoYXJnMi5m
cHIoKSwgYXJnMlRhZ0dQUiwgYXJnMlBheWxvYWRHUFIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGFyZzFUYWdHUFIgPSBhcmcxLnRhZ0dQUigpOwotICAgICAgICBhcmcxUGF5bG9hZEdQUiA9IGFy
ZzEucGF5bG9hZEdQUigpOwotICAgICAgICBhcmcyVGFnR1BSID0gYXJnMi50YWdHUFIoKTsKLSAg
ICAgICAgYXJnMlBheWxvYWRHUFIgPSBhcmcyLnBheWxvYWRHUFIoKTsKLSAgICB9Ci0KLSAgICBh
cmcxLnVzZSgpOwotICAgIGFyZzIudXNlKCk7Ci0gICAgCi0gICAgSklUQ29tcGlsZXI6Okp1bXAg
Y2hpbGQxTm90SW50OwotICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMk5vdEludDsKLSAgICBK
SVRDb21waWxlcjo6SnVtcExpc3Qgb3ZlcmZsb3c7Ci0gICAgCi0gICAgaWYgKCFpc0tub3duSW50
ZWdlcihub2RlLmNoaWxkMSgpKSkKLSAgICAgICAgY2hpbGQxTm90SW50ID0gbV9qaXQuYnJhbmNo
MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBhcmcxVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6SW50MzJUYWcpKTsKLQotICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIo
KSkpCi0gICAgICAgIGNoaWxkMk5vdEludCA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpOb3RFcXVhbCwgYXJnMlRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7
Ci0gICAgCi0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgY2FzZSBB
cml0aEFkZDogewotICAgICAgICBvdmVyZmxvdy5hcHBlbmQobV9qaXQuYnJhbmNoQWRkMzIoTWFj
cm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBhcmcxUGF5bG9hZEdQUiwgYXJnMlBheWxvYWRHUFIsIHJl
c3VsdFBheWxvYWRHUFIpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAgICAKLSAgICBj
YXNlIEFyaXRoU3ViOiB7Ci0gICAgICAgIG92ZXJmbG93LmFwcGVuZChtX2ppdC5icmFuY2hTdWIz
MihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIGFyZzFQYXlsb2FkR1BSLCBhcmcyUGF5bG9hZEdQ
UiwgcmVzdWx0UGF5bG9hZEdQUikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgICAgIAot
ICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAgb3ZlcmZsb3cuYXBwZW5kKG1faml0LmJyYW5j
aE11bDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgYXJnMVBheWxvYWRHUFIsIGFyZzJQYXls
b2FkR1BSLCByZXN1bHRQYXlsb2FkR1BSKSk7Ci0gICAgICAgIG92ZXJmbG93LmFwcGVuZChtX2pp
dC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdFBheWxvYWRHUFIpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgCi0gICAgbV9qaXQubW92ZShUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCByZXN1bHRUYWdHUFIpOwotICAgICAgICAKLSAgICBK
SVRDb21waWxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwotICAgIAotICAgIEpJVENvbXBp
bGVyOjpKdW1wTGlzdCBoYXZlRlBSQXJndW1lbnRzOwotCi0gICAgb3ZlcmZsb3cubGluaygmbV9q
aXQpOwotICAgICAgICAKLSAgICAvLyBib3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMKLSAgICBt
X2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcxUGF5bG9hZEdQUiwgdG1wMUZQUik7Ci0gICAg
bV9qaXQuY29udmVydEludDMyVG9Eb3VibGUoYXJnMlBheWxvYWRHUFIsIHRtcDJGUFIpOwotICAg
ICAgICAKLSAgICBoYXZlRlBSQXJndW1lbnRzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwotICAgICAg
ICAKLSAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgbm90TnVtYmVyczsKLSAgICAgICAgCi0gICAg
SklUQ29tcGlsZXI6Okp1bXAgY2hpbGQyTm90SW50MjsKLSAgICAgICAgCi0gICAgaWYgKCFpc0tu
b3duSW50ZWdlcihub2RlLmNoaWxkMSgpKSkgewotICAgICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRj
aCh0aGlzKTsKLSAgICAgICAgY2hpbGQxTm90SW50LmxpbmsoJm1faml0KTsKLSAgICAgICAgICAg
IAotICAgICAgICBpZiAoIWlzS25vd25OdW1lcmljKG5vZGUuY2hpbGQxKCkpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQob3AgPT0gVmFsdWVBZGQpOwotICAgICAgICAgICAgbm90TnVtYmVycy5hcHBl
bmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgYXJnMVRhZ0dQ
UiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Okxvd2VzdFRhZykpKTsKLSAgICAgICAgfQotICAgIAot
ICAgICAgICBpZiAoYXJnMS5pc0RvdWJsZSgpKQotICAgICAgICAgICAgbV9qaXQubW92ZURvdWJs
ZShhcmcxLmZwcigpLCB0bXAxRlBSKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdW5ib3hE
b3VibGUoYXJnMVRhZ0dQUiwgYXJnMVBheWxvYWRHUFIsIHRtcDFGUFIsIHNjcmF0Y2guZnByKCkp
OwotICAgICAgICAgICAgCi0gICAgICAgIC8vIGNoaWxkMSBpcyBjb252ZXJ0ZWQgdG8gYSBkb3Vi
bGU7IGNoaWxkMiBtYXkgZWl0aGVyIGJlIGFuIGludCBvcgotICAgICAgICAvLyBhIGJveGVkIGRv
dWJsZQotICAgICAgICAgICAgCi0gICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGls
ZDIoKSkpIHsKLSAgICAgICAgICAgIGlmIChpc0tub3duTnVtZXJpYyhub2RlLmNoaWxkMigpKSkK
LSAgICAgICAgICAgICAgICBjaGlsZDJOb3RJbnQyID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLCBhcmcyVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJU
YWcpKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIEFTU0VSVChvcCA9PSBW
YWx1ZUFkZCk7Ci0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgY2hpbGQySXNJbnQg
PSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIGFyZzJUYWdHUFIsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpOwotICAgICAgICAgICAgICAgIG5vdE51bWJlcnMu
YXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGFyZzJU
YWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7Ci0gICAgICAgICAgICAg
ICAgY2hpbGQyTm90SW50MiA9IG1faml0Lmp1bXAoKTsKLSAgICAgICAgICAgICAgICBjaGlsZDJJ
c0ludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgICAg
IAotICAgICAgICAvLyBjaGlsZCAyIGlzIGRlZmluaXRlbHkgYW4gaW50ZWdlcgotICAgICAgICBt
X2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyUGF5bG9hZEdQUiwgdG1wMkZQUik7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5hcHBlbmQobV9qaXQuanVtcCgpKTsK
LSAgICB9Ci0gICAgICAgIAotICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkp
IHsKLSAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7Ci0gICAgICAgIGNoaWxkMk5v
dEludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKCFpc0tub3duTnVt
ZXJpYyhub2RlLmNoaWxkMigpKSkgewotICAgICAgICAgICAgQVNTRVJUKG9wID09IFZhbHVlQWRk
KTsKLSAgICAgICAgICAgIG5vdE51bWJlcnMuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGFyZzJUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpM
b3dlc3RUYWcpKSk7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAvLyBjaGlsZDEg
aXMgZGVmaW5pdGVseSBhbiBpbnRlZ2VyLCBhbmQgY2hpbGQgMiBpcyBkZWZpbml0ZWx5IG5vdAot
ICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcxUGF5bG9hZEdQUiwgdG1wMUZQ
Uik7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKGNoaWxkMk5vdEludDIuaXNTZXQoKSkKLSAg
ICAgICAgICAgIGNoaWxkMk5vdEludDIubGluaygmbV9qaXQpOwotICAgICAgICAgICAgCi0gICAg
ICAgIGlmIChhcmcyLmlzRG91YmxlKCkpCi0gICAgICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKGFy
ZzIuZnByKCksIHRtcDJGUFIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB1bmJveERvdWJs
ZShhcmcyVGFnR1BSLCBhcmcyUGF5bG9hZEdQUiwgdG1wMkZQUiwgc2NyYXRjaC5mcHIoKSk7Ci0g
ICAgfQotICAgICAgICAKLSAgICBoYXZlRlBSQXJndW1lbnRzLmxpbmsoJm1faml0KTsKLSAgICAg
ICAgCi0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgY2FzZSBBcml0
aEFkZDoKLSAgICAgICAgbV9qaXQuYWRkRG91YmxlKHRtcDJGUFIsIHRtcDFGUFIpOwotICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIAotICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgIG1faml0
LnN1YkRvdWJsZSh0bXAyRlBSLCB0bXAxRlBSKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAKLSAgICBjYXNlIEFyaXRoTXVsOgotICAgICAgICBtX2ppdC5tdWxEb3VibGUodG1wMkZQUiwg
dG1wMUZQUik7Ci0gICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgZGVmYXVsdDoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIAotICAgIEpJVENvbXBpbGVy
OjpKdW1wIGRvbmVDYXNlQ29udmVydGVkVG9JbnQ7Ci0gICAgCi0gICAgaWYgKG9wID09IFZhbHVl
QWRkKSB7Ci0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7Ci0gICAg
ICAgIG1faml0LmJyYW5jaENvbnZlcnREb3VibGVUb0ludDMyKHRtcDFGUFIsIHJlc3VsdFBheWxv
YWRHUFIsIGZhaWx1cmVDYXNlcywgdG1wMkZQUik7Ci0gICAgICAgIG1faml0Lm1vdmUoVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgcmVzdWx0VGFnR1BSKTsKLSAgICAgICAgCi0gICAg
ICAgIGRvbmVDYXNlQ29udmVydGVkVG9JbnQgPSBtX2ppdC5qdW1wKCk7Ci0gICAgICAgIAotICAg
ICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9qaXQpOwotICAgIH0KLSAgICAgICAgCi0gICAgYm94
RG91YmxlKHRtcDFGUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7Ci0gICAgICAg
IAotICAgIGlmICghbm90TnVtYmVycy5lbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVChvcCA9PSBW
YWx1ZUFkZCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZUNh
c2VXYXNOdW1iZXIgPSBtX2ppdC5qdW1wKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgbm90TnVt
YmVycy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKLSAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlciwgcmVzdWx0VGFnR1BSLCByZXN1bHRQ
YXlsb2FkR1BSLCBhcmcxVGFnR1BSLCBhcmcxUGF5bG9hZEdQUiwgYXJnMlRhZ0dQUiwgYXJnMlBh
eWxvYWRHUFIpOwotICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFRhZ0dQUiwg
cmVzdWx0UGF5bG9hZEdQUik7Ci0KLSAgICAgICAgZG9uZUNhc2VXYXNOdW1iZXIubGluaygmbV9q
aXQpOwotICAgIH0KLSAgICAKLSAgICBkb25lLmxpbmsoJm1faml0KTsKLSAgICBpZiAoZG9uZUNh
c2VDb252ZXJ0ZWRUb0ludC5pc1NldCgpKQotICAgICAgICBkb25lQ2FzZUNvbnZlcnRlZFRvSW50
LmxpbmsoJm1faml0KTsKLSAgICAgICAgCi0gICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIs
IHJlc3VsdFBheWxvYWRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOwotfQotCiBKSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0
QnlJZChHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJS
ZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hH
UFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRo
VGFyZ2V0KQogewogICAgIG1faml0LmJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAJKHJldmlzaW9uIDEwMzI4MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NywzMDMgKzQ3Nyw2IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlVUludDMKICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdC5ncHIoKSwgbV9jb21waWxlSW5kZXgpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklU
Ojpub25TcGVjdWxhdGl2ZUtub3duQ29uc3RhbnRBcml0aE9wKE5vZGVUeXBlIG9wLCBOb2RlSW5k
ZXggcmVnQ2hpbGQsIE5vZGVJbmRleCBpbW1DaGlsZCwgYm9vbCBjb21tdXRlKQotewotICAgIEpT
VmFsdWVPcGVyYW5kIHJlZ0FyZyh0aGlzLCByZWdDaGlsZCk7Ci0gICAgR1BSUmVnIHJlZ0FyZ0dQ
UiA9IHJlZ0FyZy5ncHIoKTsKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAgRlBSVGVtcG9yYXJ5IHRtcDEodGhp
cyk7Ci0gICAgRlBSVGVtcG9yYXJ5IHRtcDIodGhpcyk7Ci0gICAgRlBSUmVnIHRtcDFGUFIgPSB0
bXAxLmZwcigpOwotICAgIEZQUlJlZyB0bXAyRlBSID0gdG1wMi5mcHIoKTsKLSAgICAKLSAgICBy
ZWdBcmcudXNlKCk7Ci0gICAgdXNlKGltbUNoaWxkKTsKLQotICAgIEpJVENvbXBpbGVyOjpKdW1w
IG5vdEludDsKLSAgICAKLSAgICBpbnQzMl90IGltbSA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KGlt
bUNoaWxkKTsKLSAgICAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihyZWdDaGlsZCkpCi0g
ICAgICAgIG5vdEludCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHJl
Z0FyZ0dQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAKLSAgICBKSVRD
b21waWxlcjo6SnVtcCBvdmVyZmxvdzsKLSAgICAKLSAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgY2Fz
ZSBWYWx1ZUFkZDoKLSAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICBvdmVyZmxvdyA9IG1faml0
LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVnQXJnR1BSLCBJbW0zMihp
bW0pLCByZXN1bHRHUFIpOwotICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBBcml0
aFN1YjoKLSAgICAgICAgb3ZlcmZsb3cgPSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxl
cjo6T3ZlcmZsb3csIHJlZ0FyZ0dQUiwgSW1tMzIoaW1tKSwgcmVzdWx0R1BSKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIH0KLSAgICAKLSAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVy
UmVnaXN0ZXIsIHJlc3VsdEdQUik7Ci0gICAgICAgIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRv
bmUgPSBtX2ppdC5qdW1wKCk7Ci0gICAgCi0gICAgb3ZlcmZsb3cubGluaygmbV9qaXQpOwotICAg
IAotICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdE51bWJlcjsKLSAgICAKLSAgICAvLyBmaXJzdCBk
ZWFsIHdpdGggb3ZlcmZsb3cgY2FzZQotICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHJl
Z0FyZ0dQUiwgdG1wMkZQUik7Ci0gICAgCi0gICAgLy8gbm93IGRlYWwgd2l0aCBub3QtaW50IGNh
c2UsIGlmIGFwcGxpY2FibGUKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKHJlZ0NoaWxkKSkgewot
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBoYXZlVmFsdWUgPSBtX2ppdC5qdW1wKCk7Ci0gICAg
ICAgIAotICAgICAgICBub3RJbnQubGluaygmbV9qaXQpOwotICAgICAgICAKLSAgICAgICAgaWYg
KCFpc0tub3duTnVtZXJpYyhyZWdDaGlsZCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChvcCA9PSBW
YWx1ZUFkZCk7Ci0gICAgICAgICAgICBub3ROdW1iZXIgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1h
Y3JvQXNzZW1ibGVyOjpaZXJvLCByZWdBcmdHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdp
c3Rlcik7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIG1faml0Lm1vdmUocmVnQXJnR1BS
LCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5hZGRQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyLCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUocmVz
dWx0R1BSLCB0bXAyRlBSKTsKLSAgICAgICAgCi0gICAgICAgIGhhdmVWYWx1ZS5saW5rKCZtX2pp
dCk7Ci0gICAgfQotICAgIAotICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihy
ZWludGVycHJldF9jYXN0PHZvaWQqPihyZWludGVycHJldERvdWJsZVRvSW50cHRyKHZhbHVlT2ZO
dW1iZXJDb25zdGFudChpbW1DaGlsZCkpKSksIHJlc3VsdEdQUik7Ci0gICAgbV9qaXQubW92ZVB0
clRvRG91YmxlKHJlc3VsdEdQUiwgdG1wMUZQUik7Ci0gICAgc3dpdGNoIChvcCkgewotICAgIGNh
c2UgVmFsdWVBZGQ6Ci0gICAgY2FzZSBBcml0aEFkZDoKLSAgICAgICAgbV9qaXQuYWRkRG91Ymxl
KHRtcDFGUFIsIHRtcDJGUFIpOwotICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBB
cml0aFN1YjoKLSAgICAgICAgbV9qaXQuc3ViRG91YmxlKHRtcDFGUFIsIHRtcDJGUFIpOwotICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIH0KLSAgICAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lQ2Fz
ZUNvbnZlcnRlZFRvSW50OwotICAgIAotICAgIGlmIChvcCA9PSBWYWx1ZUFkZCkgewotICAgICAg
ICBKSVRDb21waWxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOwotICAgICAgICBtX2ppdC5icmFu
Y2hDb252ZXJ0RG91YmxlVG9JbnQzMih0bXAyRlBSLCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywg
dG1wMUZQUik7Ci0gICAgICAgIG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdp
c3RlciwgcmVzdWx0R1BSKTsKLSAgICAgICAgCi0gICAgICAgIGRvbmVDYXNlQ29udmVydGVkVG9J
bnQgPSBtX2ppdC5qdW1wKCk7Ci0gICAgICAgIAotICAgICAgICBmYWlsdXJlQ2FzZXMubGluaygm
bV9qaXQpOwotICAgIH0KLSAgICAKLSAgICBtX2ppdC5tb3ZlRG91YmxlVG9QdHIodG1wMkZQUiwg
cmVzdWx0R1BSKTsKLSAgICBtX2ppdC5zdWJQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyLCByZXN1bHRHUFIpOwotICAgICAgICAKLSAgICBpZiAoIWlzS25vd25OdW1lcmljKHJlZ0No
aWxkKSkgewotICAgICAgICBBU1NFUlQobm90TnVtYmVyLmlzU2V0KCkpOwotICAgICAgICBBU1NF
UlQob3AgPT0gVmFsdWVBZGQpOwotICAgICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIGRvbmVDYXNlV2FzTnVtYmVyID0gbV9qaXQuanVtcCgpOwotICAgICAgICAgICAgCi0gICAg
ICAgIG5vdE51bWJlci5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgc2lsZW50
U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKLSAgICAgICAgaWYgKGNvbW11dGUpCi0gICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyLCByZXN1bHRH
UFIsIE1hY3JvQXNzZW1ibGVyOjpJbW0zMihpbW0pLCByZWdBcmdHUFIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyLCBy
ZXN1bHRHUFIsIHJlZ0FyZ0dQUiwgTWFjcm9Bc3NlbWJsZXI6OkltbTMyKGltbSkpOwotICAgICAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgZG9uZUNhc2VXYXNOdW1iZXIubGluaygmbV9qaXQpOwotICAgIH0KLSAgICAKLSAgICBkb25l
LmxpbmsoJm1faml0KTsKLSAgICBpZiAoZG9uZUNhc2VDb252ZXJ0ZWRUb0ludC5pc1NldCgpKQot
ICAgICAgICBkb25lQ2FzZUNvbnZlcnRlZFRvSW50LmxpbmsoJm1faml0KTsKLSAgICAgICAgCi0g
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNh
bGxlZEV4cGxpY2l0bHkpOwotfQotCi12b2lkIFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2
ZUJhc2ljQXJpdGhPcChOb2RlVHlwZSBvcCwgTm9kZSAmbm9kZSkKLXsKLSAgICBKU1ZhbHVlT3Bl
cmFuZCBhcmcxKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIo
dGhpcywgbm9kZS5jaGlsZDIoKSk7Ci0gICAgCi0gICAgRlBSVGVtcG9yYXJ5IHRtcDEodGhpcyk7
Ci0gICAgRlBSVGVtcG9yYXJ5IHRtcDIodGhpcyk7Ci0gICAgRlBSUmVnIHRtcDFGUFIgPSB0bXAx
LmZwcigpOwotICAgIEZQUlJlZyB0bXAyRlBSID0gdG1wMi5mcHIoKTsKLSAgICAKLSAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotCi0gICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigp
OwotICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKLSAgICAKLSAgICBHUFJSZWcgcmVz
dWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgIAotICAgIGFyZzEudXNlKCk7Ci0gICAgYXJnMi51
c2UoKTsKLSAgICAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBjaGlsZDFOb3RJbnQ7Ci0gICAgSklU
Q29tcGlsZXI6Okp1bXAgY2hpbGQyTm90SW50OwotICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBv
dmVyZmxvdzsKLSAgICAKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpKQot
ICAgICAgICBjaGlsZDFOb3RJbnQgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJl
bG93LCBhcmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgIGlmICgh
aXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpCi0gICAgICAgIGNoaWxkMk5vdEludCA9IG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRh
Z1R5cGVOdW1iZXJSZWdpc3Rlcik7Ci0gICAgCi0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2Ug
VmFsdWVBZGQ6Ci0gICAgY2FzZSBBcml0aEFkZDogewotICAgICAgICBvdmVyZmxvdy5hcHBlbmQo
bV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBhcmcxR1BSLCBhcmcy
R1BSLCByZXN1bHRHUFIpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAgICAKLSAgICBj
YXNlIEFyaXRoU3ViOiB7Ci0gICAgICAgIG92ZXJmbG93LmFwcGVuZChtX2ppdC5icmFuY2hTdWIz
MihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUikp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgICAgIAotICAgIGNhc2UgQXJpdGhNdWw6IHsK
LSAgICAgICAgb3ZlcmZsb3cuYXBwZW5kKG1faml0LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVy
OjpPdmVyZmxvdywgYXJnMUdQUiwgYXJnMkdQUiwgcmVzdWx0R1BSKSk7Ci0gICAgICAgIG92ZXJm
bG93LmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3Vs
dEdQUikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLSAgICAKLSAgICBtX2ppdC5vclB0
cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJlc3VsdEdQUik7Ci0gICAgICAgIAot
ICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7Ci0gICAgCi0gICAgSklU
Q29tcGlsZXI6Okp1bXBMaXN0IGhhdmVGUFJBcmd1bWVudHM7Ci0KLSAgICBvdmVyZmxvdy5saW5r
KCZtX2ppdCk7Ci0gICAgICAgIAotICAgIC8vIGJvdGggYXJndW1lbnRzIGFyZSBpbnRlZ2Vycwot
ICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzFHUFIsIHRtcDFGUFIpOwotICAgIG1f
aml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzJHUFIsIHRtcDJGUFIpOwotICAgICAgICAKLSAg
ICBoYXZlRlBSQXJndW1lbnRzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwotICAgICAgICAKLSAgICBK
SVRDb21waWxlcjo6SnVtcExpc3Qgbm90TnVtYmVyczsKLSAgICAgICAgCi0gICAgSklUQ29tcGls
ZXI6Okp1bXAgY2hpbGQyTm90SW50MjsKLSAgICAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdl
cihub2RlLmNoaWxkMSgpKSkgewotICAgICAgICBjaGlsZDFOb3RJbnQubGluaygmbV9qaXQpOwot
ICAgICAgICAgICAgCi0gICAgICAgIGlmICghaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDEoKSkp
IHsKLSAgICAgICAgICAgIEFTU0VSVChvcCA9PSBWYWx1ZUFkZCk7Ci0gICAgICAgICAgICBub3RO
dW1iZXJzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBh
cmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKLSAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgIG1faml0Lm1vdmUoYXJnMUdQUiwgcmVzdWx0R1BSKTsKLSAgICAg
ICAgdW5ib3hEb3VibGUocmVzdWx0R1BSLCB0bXAxRlBSKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAvLyBjaGlsZDEgaXMgY29udmVydGVkIHRvIGEgZG91YmxlOyBjaGlsZDIgbWF5IGVpdGhlciBi
ZSBhbiBpbnQgb3IKLSAgICAgICAgLy8gYSBib3hlZCBkb3VibGUKLSAgICAgICAgICAgIAotICAg
ICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKSB7Ci0gICAgICAgICAgICBp
ZiAoaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIoKSkpCi0gICAgICAgICAgICAgICAgY2hpbGQy
Tm90SW50MiA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIs
IEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQob3AgPT0gVmFsdWVBZGQpOwotICAgICAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIGNoaWxkMklzSW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpBYm92ZU9yRXF1YWwsIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cik7Ci0gICAgICAgICAgICAgICAgbm90TnVtYmVycy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0
cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyKSk7Ci0gICAgICAgICAgICAgICAgY2hpbGQyTm90SW50MiA9IG1faml0Lmp1bXAoKTsK
LSAgICAgICAgICAgICAgICBjaGlsZDJJc0ludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAvLyBjaGlsZCAyIGlzIGRlZmluaXRl
bHkgYW4gaW50ZWdlcgotICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BS
LCB0bXAyRlBSKTsKLSAgICAgICAgICAgIAotICAgICAgICBoYXZlRlBSQXJndW1lbnRzLmFwcGVu
ZChtX2ppdC5qdW1wKCkpOwotICAgIH0KLSAgICAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdl
cihub2RlLmNoaWxkMigpKSkgewotICAgICAgICBjaGlsZDJOb3RJbnQubGluaygmbV9qaXQpOwot
ICAgICAgICAgICAgCi0gICAgICAgIGlmICghaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIoKSkp
IHsKLSAgICAgICAgICAgIEFTU0VSVChvcCA9PSBWYWx1ZUFkZCk7Ci0gICAgICAgICAgICBub3RO
dW1iZXJzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBh
cmcyR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKLSAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgIC8vIGNoaWxkMSBpcyBkZWZpbml0ZWx5IGFuIGludGVnZXIsIGFu
ZCBjaGlsZCAyIGlzIGRlZmluaXRlbHkgbm90Ci0gICAgICAgICAgICAKLSAgICAgICAgbV9qaXQu
Y29udmVydEludDMyVG9Eb3VibGUoYXJnMUdQUiwgdG1wMUZQUik7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgaWYgKGNoaWxkMk5vdEludDIuaXNTZXQoKSkKLSAgICAgICAgICAgIGNoaWxkMk5vdElu
dDIubGluaygmbV9qaXQpOwotICAgICAgICAgICAgCi0gICAgICAgIG1faml0Lm1vdmUoYXJnMkdQ
UiwgcmVzdWx0R1BSKTsKLSAgICAgICAgdW5ib3hEb3VibGUocmVzdWx0R1BSLCB0bXAyRlBSKTsK
LSAgICB9Ci0gICAgICAgIAotICAgIGhhdmVGUFJBcmd1bWVudHMubGluaygmbV9qaXQpOwotICAg
ICAgICAKLSAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgY2FzZSBWYWx1ZUFkZDoKLSAgICBjYXNlIEFy
aXRoQWRkOgotICAgICAgICBtX2ppdC5hZGREb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Ci0gICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgbV9q
aXQuc3ViRG91YmxlKHRtcDJGUFIsIHRtcDFGUFIpOwotICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIAotICAgIGNhc2UgQXJpdGhNdWw6Ci0gICAgICAgIG1faml0Lm11bERvdWJsZSh0bXAyRlBS
LCB0bXAxRlBSKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgCi0gICAgSklUQ29tcGls
ZXI6Okp1bXAgZG9uZUNhc2VDb252ZXJ0ZWRUb0ludDsKLSAgICAKLSAgICBpZiAob3AgPT0gVmFs
dWVBZGQpIHsKLSAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKLSAg
ICAgICAgbV9qaXQuYnJhbmNoQ29udmVydERvdWJsZVRvSW50MzIodG1wMUZQUiwgcmVzdWx0R1BS
LCBmYWlsdXJlQ2FzZXMsIHRtcDJGUFIpOwotICAgICAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJlc3VsdEdQUik7Ci0gICAgICAgIAotICAgICAgICBkb25l
Q2FzZUNvbnZlcnRlZFRvSW50ID0gbV9qaXQuanVtcCgpOwotICAgICAgICAKLSAgICAgICAgZmFp
bHVyZUNhc2VzLmxpbmsoJm1faml0KTsKLSAgICB9Ci0gICAgICAgIAotICAgIGJveERvdWJsZSh0
bXAxRlBSLCByZXN1bHRHUFIpOwotICAgICAgICAKLSAgICBpZiAoIW5vdE51bWJlcnMuZW1wdHko
KSkgewotICAgICAgICBBU1NFUlQob3AgPT0gVmFsdWVBZGQpOwotICAgICAgICAgICAgCi0gICAg
ICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmVDYXNlV2FzTnVtYmVyID0gbV9qaXQuanVtcCgpOwot
ICAgICAgICAgICAgCi0gICAgICAgIG5vdE51bWJlcnMubGluaygmbV9qaXQpOwotICAgICAgICAg
ICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIsIHJlc3VsdEdQUiwgYXJn
MUdQUiwgYXJnMkdQUik7Ci0gICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKLQotICAgICAgICBkb25lQ2FzZVdhc051bWJlci5saW5rKCZtX2ppdCk7Ci0gICAgfQotICAg
IAotICAgIGRvbmUubGluaygmbV9qaXQpOwotICAgIGlmIChkb25lQ2FzZUNvbnZlcnRlZFRvSW50
LmlzU2V0KCkpCi0gICAgICAgIGRvbmVDYXNlQ29udmVydGVkVG9JbnQubGluaygmbV9qaXQpOwot
ICAgICAgICAKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci19Ci0KIEpJVENvbXBpbGVyOjpDYWxsIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUQ29tcGlsZXI6OkRhdGFMYWJlbFB0
ciBzdHJ1Y3R1cmVUb0NvbXBhcmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxMDMyODApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTg2Myw5
ICs4NjMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVWYWx1ZVRvSW50MzIo
Tm9kZSYpOwogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVVSW50MzJUb051bWJlcihOb2RlJik7CiAK
LSAgICB2b2lkIG5vblNwZWN1bGF0aXZlS25vd25Db25zdGFudEFyaXRoT3AoTm9kZVR5cGUgb3As
IE5vZGVJbmRleCByZWdDaGlsZCwgTm9kZUluZGV4IGltbUNoaWxkLCBib29sIGNvbW11dGUpOwot
ICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVCYXNpY0FyaXRoT3AoTm9kZVR5cGUgb3AsIE5vZGUmKTsK
LSAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhY2hlZEdl
dEJ5SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRh
cmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCkpOwogICAgIHZvaWQgY2FjaGVkUHV0QnlJZChHUFJS
ZWcgYmFzZSwgR1BSUmVnIHZhbHVlLCBOb2RlSW5kZXggdmFsdWVJbmRleCwgR1BSUmVnIHNjcmF0
Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJVENvbXBpbGVyOjpK
dW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>