<?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>105103</bug_id>
          
          <creation_ts>2012-12-15 12:55:38 -0800</creation_ts>
          <short_desc>[WebKit2] Move CustomProtocolManager to Shared/</short_desc>
          <delta_ts>2012-12-15 13:09:43 -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>New Bugs</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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792173</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-12-15 12:55:38 -0800</bug_when>
    <thetext>[WebKit2] Move CustomProtocolManager to Shared/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792175</commentid>
    <comment_count>1</comment_count>
      <attachid>179609</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-12-15 12:58:39 -0800</bug_when>
    <thetext>Created attachment 179609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792177</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-12-15 13:09:43 -0800</bug_when>
    <thetext>Committed r137806: &lt;http://trac.webkit.org/changeset/137806&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179609</attachid>
            <date>2012-12-15 12:58:39 -0800</date>
            <delta_ts>2012-12-15 13:04:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105103-20121215125558.patch</filename>
            <type>text/plain</type>
            <size>37083</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTRlMTgxYmVlMGIyM2E3
MDgwOTk4OWYyZTI4NDVjNjYyODljMzFjYy4uOTRlMjk3Yjg3ODhlYWU3OWQzYTgxMWE0MzkyNzFi
NTg4NTYyZDNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViS2l0Ml0gTW92ZSBDdXN0
b21Qcm90b2NvbE1hbmFnZXIgdG8gU2hhcmVkLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyIGNhbiBiZSBpbnN0YW50
aWF0ZWQgZWl0aGVyIGluIHRoZSBOZXR3b3JrUHJvY2VzcyBvciB0aGUgV2ViUHJvY2Vzcywgc28g
aXQgc2hvdWxkIGxpdmUgaW4gU2hhcmVkLy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6IFVwZGF0ZSB0aGUgcGF0aCB3aGVyZSBDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMu
aW4gY2FuIGJlIGZvdW5kLgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgu
CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29s
TWFuYWdlci5tZXNzYWdlcy5pbjogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWFj
Lm1tLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAx
Mi0xMi0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IERvd25sb2FkUHJveHlNYXAgc2hvdWxkbid0IGJlIGEgc2luZ2xldG9uIGFmdGVyIGFsbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYWVkYTEwNjkzMTU4NzA5ZWQ3YzkwZjNkYmVj
MTkzOTc1ZDk3MTgxOS4uNDc4ZWI1MmE1MGU3M2U3Yzg4NWQ1NjlhOGQ5ZTJhNjUzOWM1OGUwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNyw2ICsyNyw3IEBAIFZQQVRIID0g
XAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvU2hh
cmVkL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvU2hhcmVkIFwKKyAgICAkKFdlYktpdDIpL1No
YXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWRXb3Jr
ZXJQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKQEAgLTM3LDcgKzM4
LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFn
ZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKLSAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQy
KS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3Rv
Y29sTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMjQ1M2E4N2MzMGFhZmQzMGI0MzMwMjM4NmY2NmY2
ZWE2Nzc3NTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKQEAgLTAsMCArMSw5NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyX2gKKyNkZWZpbmUg
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQor
CisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KK09CSkNfQ0xBU1Mg
V0tDdXN0b21Qcm90b2NvbDsKKyNlbmRpZgorCisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNz
IENvbm5lY3Rpb247CitjbGFzcyBEYXRhUmVmZXJlbmNlOworY2xhc3MgTWVzc2FnZURlY29kZXI7
Cit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJl
c291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDdXN0b21Qcm90b2NvbE1hbmFnZXIpOworCitw
dWJsaWM6CisgICAgc3RhdGljIEN1c3RvbVByb3RvY29sTWFuYWdlciYgc2hhcmVkKCk7CisgICAg
CisgICAgdm9pZCByZWdpc3RlclNjaGVtZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJTY2hlbWUoY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBzdXBwb3J0c1NjaGVtZShjb25z
dCBTdHJpbmcmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAg
ICB2b2lkIGRpZEZhaWxXaXRoRXJyb3IodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgZGlkTG9hZERhdGEodWludDY0X3Qg
Y3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQb2xpY3kpOwor
ICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKTsKKyAg
ICAKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDdXN0b21Qcm90
b2NvbENsYXNzKCk7CisgICAgdm9pZCBhZGRDdXN0b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29s
ICopOworICAgIHZvaWQgcmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqKTsK
KyNlbmRpZgorCitwcml2YXRlOgorICAgIEN1c3RvbVByb3RvY29sTWFuYWdlcigpIHsgfQorICAg
IHZvaWQgZGlkUmVjZWl2ZUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICAKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9yZWdpc3RlcmVkU2NoZW1lczsKKworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxXS0N1
c3RvbVByb3RvY29sPiA+IEN1c3RvbVByb3RvY29sTWFwOworICAgIEN1c3RvbVByb3RvY29sTWFw
IG1fY3VzdG9tUHJvdG9jb2xNYXA7CisgICAgV0tDdXN0b21Qcm90b2NvbCAqcHJvdG9jb2xGb3JJ
RCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKKworI2VuZGlm
IC8vIEN1c3RvbVByb3RvY29sTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1
c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGVmZDgzODkxNjU3
YmY4NzYxM2Q4YmJkYWNiYTZhMWUxYThmMGNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKKworbWVzc2FnZXMg
LT4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyIHsKKyAgICBEaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgRGlk
TG9hZERhdGEodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgQ29yZUlQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhKQorICAgIERpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCB1aW50MzJfdCBjYWNoZVN0b3Jh
Z2VQb2xpY3kpCisgICAgRGlkRmluaXNoTG9hZGluZyh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElE
KQorfQorCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBl
OTYwMDNlODg3MjY5ZDdlZWViZTQ4NWM5ODdhODk4OTRlNGYxZTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3Rv
bVByb3RvY29sTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKKworI2ltcG9ydCAiQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0tVUkwuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlQ3VzdG9tUHJvdG9jb2xJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90
IHVuaXF1ZUN1c3RvbVByb3RvY29sSUQgPSAwOworICAgIHJldHVybiArK3VuaXF1ZUN1c3RvbVBy
b3RvY29sSUQ7Cit9CisKK0BpbnRlcmZhY2UgV0tDdXN0b21Qcm90b2NvbCA6IE5TVVJMUHJvdG9j
b2wgeworQHByaXZhdGUKKyAgICB1aW50NjRfdCBfY3VzdG9tUHJvdG9jb2xJRDsKK30KK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRDsKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdLQ3VzdG9tUHJvdG9jb2wKKworQHN5bnRoZXNpemUgY3Vz
dG9tUHJvdG9jb2xJRCA9IF9jdXN0b21Qcm90b2NvbElEOworCisrIChCT09MKWNhbkluaXRXaXRo
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAoreworICAgIHJldHVybiBXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6c2hhcmVkKCkuc3VwcG9ydHNTY2hlbWUoW1tbcmVxdWVzdCBV
UkxdIHNjaGVtZV0gbG93ZXJjYXNlU3RyaW5nXSk7Cit9CisKKysgKE5TVVJMUmVxdWVzdCAqKWNh
bm9uaWNhbFJlcXVlc3RGb3JSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0Cit7CisgICAg
cmV0dXJuIHJlcXVlc3Q7Cit9CisKKysgKEJPT0wpcmVxdWVzdElzQ2FjaGVFcXVpdmFsZW50OihO
U1VSTFJlcXVlc3QgKilhIHRvUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopYgoreworICAgIHJldHVy
biBOTzsKK30KKworLSAoaWQpaW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
IGNhY2hlZFJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopY2FjaGVkUmVzcG9uc2UgY2xp
ZW50OihpZDxOU1VSTFByb3RvY29sQ2xpZW50PiljbGllbnQKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0IGNhY2hlZFJlc3BvbnNlOmNhY2hlZFJlc3BvbnNlIGNs
aWVudDpjbGllbnRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAK
KyAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGdlbmVyYXRlQ3VzdG9tUHJvdG9jb2xJRCgpOworICAg
IFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzaGFyZWQoKS5hZGRDdXN0b21Qcm90b2Nv
bChzZWxmKTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzdGFydExvYWRpbmcKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkN1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5OjpTdGFydExvYWRpbmcoc2VsZi5jdXN0b21Qcm90b2Nv
bElELCBbc2VsZiByZXF1ZXN0XSksIDApOworfQorCistICh2b2lkKXN0b3BMb2FkaW5nCit7Cisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eTo6U3RvcExvYWRpbmcoc2VsZi5jdXN0b21Qcm90b2NvbElE
KSwgMCk7CisgICAgV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnNoYXJlZCgpLnJlbW92
ZUN1c3RvbVByb3RvY29sKHNlbGYpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitDdXN0b21Qcm90b2NvbE1hbmFnZXImIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c2hhcmVkKCkK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1c3RvbVByb3RvY29sTWFuYWdlciwgY3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLCAoKSk7CisgICAgcmV0dXJuIGN1c3RvbVByb3RvY29sTWFuYWdlcjsK
K30KKwordm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2xD
bGFzcygpCit7CisgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpbV0tDdXN0b21Qcm90
b2NvbCBjbGFzc11dOworfQorICAgIAordm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1
c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9jb2wgKmN1c3RvbVByb3RvY29sKQoreworICAgIEFT
U0VSVChjdXN0b21Qcm90b2NvbCk7CisgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9t
UHJvdG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOworfQorCit2b2lkIEN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2Nv
bCAqY3VzdG9tUHJvdG9jb2wpCit7CisgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKKyAgICBt
X2N1c3RvbVByb3RvY29sTWFwLnJlbW92ZShjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElE
KTsKK30KKyAgICAKK3ZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZShj
b25zdCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBtX3JlZ2lzdGVyZWRTY2hlbWVzLmFkZChzY2hl
bWUpOworfQorICAgIAordm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgbV9yZWdpc3RlcmVkU2NoZW1lcy5yZW1v
dmUoc2NoZW1lKTsKK30KKworYm9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2No
ZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQoreworICAgIHJldHVybiBtX3JlZ2lzdGVyZWRTY2hl
bWVzLmNvbnRhaW5zKHNjaGVtZSk7Cit9CisKK3ZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBkaWRSZWNlaXZlQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOworfQorCit2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6
ZGlkRmFpbFdpdGhFcnJvcih1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBXS0N1c3RvbVByb3RvY29sICpwcm90b2Nv
bCA9IHByb3RvY29sRm9ySUQoY3VzdG9tUHJvdG9jb2xJRCk7CisgICAgaWYgKCFwcm90b2NvbCkK
KyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2Nv
bDpwcm90b2NvbCBkaWRGYWlsV2l0aEVycm9yOmVycm9yLm5zRXJyb3IoKV07CisgICAgcmVtb3Zl
Q3VzdG9tUHJvdG9jb2wocHJvdG9jb2wpOworfQorCit2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkTG9hZERhdGEodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBXS0N1c3RvbVByb3RvY29sICpwcm90b2NvbCA9
IHByb3RvY29sRm9ySUQoY3VzdG9tUHJvdG9jb2xJRCk7CisgICAgaWYgKCFwcm90b2NvbCkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2NvbDpw
cm90b2NvbCBkaWRMb2FkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6KHZvaWQqKWRhdGEuZGF0
YSgpIGxlbmd0aDpkYXRhLnNpemUoKV1dOworfQorCit2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQ
b2xpY3kpCit7CisgICAgV0tDdXN0b21Qcm90b2NvbCAqcHJvdG9jb2wgPSBwcm90b2NvbEZvcklE
KGN1c3RvbVByb3RvY29sSUQpOworICAgIGlmICghcHJvdG9jb2wpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBbW3Byb3RvY29sIGNsaWVudF0gVVJMUHJvdG9jb2w6cHJvdG9jb2wgZGlkUmVj
ZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBjYWNoZVN0b3JhZ2VQb2xpY3k6
c3RhdGljX2Nhc3Q8TlNVUkxDYWNoZVN0b3JhZ2VQb2xpY3k+KGNhY2hlU3RvcmFnZVBvbGljeSld
OworfQorCit2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkRmluaXNoTG9hZGluZyh1aW50
NjRfdCBjdXN0b21Qcm90b2NvbElEKQoreworICAgIFdLQ3VzdG9tUHJvdG9jb2wgKnByb3RvY29s
ID0gcHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKKyAgICBpZiAoIXByb3RvY29sKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgW1twcm90b2NvbCBjbGllbnRdIFVSTFByb3RvY29s
RGlkRmluaXNoTG9hZGluZzpwcm90b2NvbF07CisgICAgcmVtb3ZlQ3VzdG9tUHJvdG9jb2wocHJv
dG9jb2wpOworfQorCitXS0N1c3RvbVByb3RvY29sICpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnBy
b3RvY29sRm9ySUQodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkKK3sKKyAgICBDdXN0b21Qcm90
b2NvbE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbVByb3RvY29sTWFwLmZpbmQoY3Vz
dG9tUHJvdG9jb2xJRCk7CisgICAgaWYgKGl0ID09IG1fY3VzdG9tUHJvdG9jb2xNYXAuZW5kKCkp
CisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgQVNTRVJUKGl0LT52YWx1ZSk7CisgICAg
cmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMjg0NzFlOTExNzY3MWNkYjdk
NGZlMGM1YzMxNDY2NzRjNjY5MjY2Li43NjJkZDdjYjIwMWJiZDNjNDNjMjVmYzA0MzA2NzJlNzU3
NjhiMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yODQsMTAgKzI4NCwxMCBAQAogCQkyOTZCRDg1RTE1MDE5QkMzMDA3MUY0
MjQgLyogU3RyaW5nVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjk2QkQ4NUMxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGll
cy5tbSAqLzsgfTsKIAkJMjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIEN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5ODRGNTdBMTY0QjkxNUYwMDRCQzBDNiAvKiBDdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTI5ODRGNTdE
MTY0QjkxNUYwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU3QjE2
NEI5MTVGMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
OyB9OwotCQkyOTg0RjU4MTE2NEI5QkJEMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4
MDE2NEI5QkJEMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggKi87IH07Ci0JCTI5
ODRGNTgzMTY0QjlCRDkwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTg0RjU4MjE2NEI5
QkQ5MDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tICovOyB9OwogCQkyOTg0
RjU4ODE2NEJBMDk1MDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
ODRGNTg2MTY0QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkyOTg0RjU4OTE2NEJBMDk1MDA0QkMwQzYgLyogQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5ODRGNTg3MTY0QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1h
bmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkyOTg5QTQxMTE2N0QxODM0MDA0Rjk2RDIgLyogQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjk4OUE0MTAxNjdEMTgzNDAwNEY5NkQyIC8qIEN1c3RvbVByb3RvY29s
TWFuYWdlck1hYy5tbSAqLzsgfTsKKwkJMjk4OUE0MTQxNjdEMTg0QjAwNEY5NkQyIC8qIEN1c3Rv
bVByb3RvY29sTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjk4OUE0MTIxNjdEMTg0QjAwNEY5NkQyIC8qIEN1c3RvbVByb3RvY29sTWFuYWdl
ci5oICovOyB9OwogCQkyOUFEMzA5MzE2NEI0QzVEMDA3MkRFQTkgLyogQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QUQzMDkyMTY0QjRDNUQwMDcyREVBOSAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eS5oICovOyB9OwogCQkyOUFEMzA5NjE2NEI0QzkzMDA3MkRFQTkgLyogQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOUFEMzA5NTE2NEI0QzkzMDA3MkRFQTkgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHlNYWMubW0gKi87IH07CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5oICovOyB9OwpAQCAtMTUwNCwxMSArMTUwNCwxMSBAQAogCQkyOTZCRDg1
QzE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3RyaW5nVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyOTg0RjU3QTE2NEI5MTVGMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTg0RjU3QjE2NEI5MTVGMDA0QkMw
QzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5ODRGNTgwMTY0QjlCQkQwMDRCQzBDNiAv
KiBDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
Mjk4NEY1ODIxNjRCOUJEOTAwNEJDMEM2IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEN1c3RvbVByb3RvY29sTWFu
YWdlck1hYy5tbTsgcGF0aCA9IE5ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90
b2NvbE1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5ODRGNTg0
MTY0QjlFRDkwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluOyBw
YXRoID0gTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTg0RjU4NjE2NEJBMDk1MDA0
QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbVByb3RvY29sTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODRGNTg3MTY0
QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTg5QTQxMDE2N0QxODM0MDA0Rjk2RDIg
LyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tOyBwYXRoID0gTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk4OUE0MTIxNjdEMTg0QjAwNEY5NkQyIC8qIEN1c3Rv
bVByb3RvY29sTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0
b21Qcm90b2NvbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3Rv
bVByb3RvY29sTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTg5QTQx
MzE2N0QxODRCMDA0Rjk2RDIgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IEN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbjsg
cGF0aCA9IE5ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBRDMwOTIxNjRCNEM1RDAw
NzJERUE5IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5Lmg7IHBhdGggPSBDdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlBRDMwOTUxNjRCNEM5MzAwNzJERUE5IC8qIEN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW07IHBhdGggPSBDdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyOUFEMzA5NzE2NEI0RTIxMDA3MkRFQTkgLyogQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBDdXN0b21Qcm90b2NvbHMvQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMDE0LDIwICszMDE0LDIwIEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMjk4NEY1N0UxNjRCOUI1NjAwNEJDMEM2IC8qIEN1
c3RvbVByb3RvY29scyAqLyA9IHsKKwkJMjk4OUE0MEUxNjdEMTgxMzAwNEY5NkQyIC8qIEN1c3Rv
bVByb3RvY29scyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJMjk4NEY1N0YxNjRCOUI1RDAwNEJDMEM2IC8qIG1hYyAqLywKLQkJCQkyOTg0RjU4MDE2NEI5
QkJEMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggKi8sCi0JCQkJMjk4NEY1ODQx
NjRCOUVEOTAwNEJDMEM2IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
KwkJCQkyOTg5QTQwRjE2N0QxODFCMDA0Rjk2RDIgLyogbWFjICovLAorCQkJCTI5ODlBNDEyMTY3
RDE4NEIwMDRGOTZEMiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCAqLywKKwkJCQkyOTg5QTQx
MzE2N0QxODRCMDA0Rjk2RDIgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluICov
LAogCQkJKTsKIAkJCW5hbWUgPSBDdXN0b21Qcm90b2NvbHM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OwotCQkyOTg0RjU3RjE2NEI5QjVEMDA0QkMwQzYgLyogbWFjICovID0gewor
CQkyOTg5QTQwRjE2N0QxODFCMDA0Rjk2RDIgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkyOTg0RjU4MjE2NEI5QkQ5MDA0QkMwQzYgLyogQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyTWFjLm1tICovLAorCQkJCTI5ODlBNDEwMTY3RDE4MzQwMDRGOTZE
MiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNYWMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1h
YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTM0LDcgKzMxMzQsNiBAQAogCQk1
MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMjk4NEY1N0UxNjRCOUI1NjAwNEJDMEM2IC8qIEN1
c3RvbVByb3RvY29scyAqLywKIAkJCQk1MTA1QjBENDE2MkY3QTdBMDBFMjc3MDkgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk1MTA1QjBENTE2MkY3QTdBMDBFMjc3MDkg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGQjA5MDIxNjNBM0IxQzAw
RUMzMjRBIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKQEAgLTMy
NjEsNiArMzI2MCw3IEBACiAJCTUxQThBNjBEMTYyN0YyQUMwMDBEOTBFOSAvKiBOZXR3b3JrICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyOTg5QTQwRTE2
N0QxODEzMDA0Rjk2RDIgLyogQ3VzdG9tUHJvdG9jb2xzICovLAogCQkJCTUxQThBNjEyMTYyN0Yz
MjUwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCiAJ
CQkJNTFBOEE2MEYxNjI3RjJCRDAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggKi8sCiAJCQkJNTFDQkJBMEQxNjUyMTlCNjAwNUJFOEZEIC8qIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCAqLywKQEAgLTUwMTMsNyArNTAxMyw2IEBACiAJCQkJNTEw
QUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyOUFEMzA5MzE2NEI0QzVEMDA3MkRFQTkgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5ODRGNTdEMTY0QjkxNUYwMDRCQzBDNiAvKiBD
dXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQky
OTg0RjU4MTE2NEI5QkJEMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyOTg0RjU4OTE2NEJBMDk1MDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjA2MEUwMTY1NDMxN0YwMEYz
MjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTc1OTQ0QjE2NTcwODA0MDBERDc3MUQgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLApAQCAtNTAyMyw2ICs1MDIyLDcgQEAKIAkJCQkzMUE2N0UwRDE2NUIy
QTk5MDA2Q0JBNjYgLyogUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxRDU5MjlGMTY2RTA2MDAwMEU2QkYwMiAvKiBXZWJQbHVnSW5DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRDI1RTk2MTY3QUIwODEwMEVBOUJDRCAvKiBEb3dubG9hZFByb3h5TWFw
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTg5QTQxNDE2N0QxODRCMDA0Rjk2RDIgLyogQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU5NzAsNyArNTk3MCw2IEBACiAJ
CQkJNTEwQUZGQjkxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTI5QUQzMDk2MTY0QjRDOTMwMDcyREVBOSAvKiBDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5ODRGNTdDMTY0QjkxNUYw
MDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkyOTg0RjU4MzE2NEI5QkQ5MDA0QkMwQzYgLyogQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjk4NEY1ODgxNjRCQTA5NTAw
NEJDMEM2IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2Fk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3NTk0NEExNjU3MDgw
NDAwREQ3NzFEIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTU5ODAsNiArNTk3OSw3IEBACiAJCQkJMzFBNjdFMEMxNjVCMkE5OTAw
NkNCQTY2IC8qIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMxRDU5MjlFMTY2RTA2MDAwMEU2QkYwMiAvKiBXZWJQbHVnSW5DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFEMjVFOTUxNjdBQjA4MTAwRUE5QkNEIC8qIERvd25sb2FkUHJveHlNYXAu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk4OUE0MTExNjdEMTgzNDAwNEY5NkQyIC8qIEN1c3Rv
bVByb3RvY29sTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2Nv
bE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNiMjQ1M2E4N2MzMGFhZmQzMGI0MzMwMjM4NmY2NmY2ZWE2Nzc3NTkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEN1c3RvbVBy
b3RvY29sTWFuYWdlcl9oCi0jZGVmaW5lIEN1c3RvbVByb3RvY29sTWFuYWdlcl9oCi0KLSNpZiBF
TkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKLQotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgotI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNp
ZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+Ci1PQkpDX0NMQVNTIFdLQ3VzdG9tUHJvdG9jb2w7Ci0jZW5kaWYKLQotCi1u
YW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotY2xhc3MgRGF0YVJlZmVyZW5j
ZTsKLWNsYXNzIE1lc3NhZ2VEZWNvZGVyOwotfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIEN1c3RvbVByb3RvY29sTWFuYWdlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyKTsKLQotcHVibGljOgotICAgIHN0YXRpYyBDdXN0b21Qcm90b2Nv
bE1hbmFnZXImIHNoYXJlZCgpOwotICAgIAotICAgIHZvaWQgcmVnaXN0ZXJTY2hlbWUoY29uc3Qg
U3RyaW5nJik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYpOwotICAg
IGJvb2wgc3VwcG9ydHNTY2hlbWUoY29uc3QgU3RyaW5nJik7Ci0KLSAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2
b2lkIGRpZExvYWREYXRhKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IENvcmVJUEM6
OkRhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBj
dXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgdWludDMy
X3QgY2FjaGVTdG9yYWdlUG9saWN5KTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodWludDY0
X3QgY3VzdG9tUHJvdG9jb2xJRCk7Ci0gICAgCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2xDbGFzcygpOwotICAgIHZvaWQgYWRkQ3VzdG9t
UHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqKTsKLSAgICB2b2lkIHJlbW92ZUN1c3RvbVByb3Rv
Y29sKFdLQ3VzdG9tUHJvdG9jb2wgKik7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBDdXN0b21Q
cm90b2NvbE1hbmFnZXIoKSB7IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVDdXN0b21Qcm90b2NvbE1h
bmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgCi0gICAgSGFzaFNldDxTdHJpbmc+IG1fcmVn
aXN0ZXJlZFNjaGVtZXM7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdHlwZWRlZiBIYXNoTWFw
PHVpbnQ2NF90LCBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gPiBDdXN0b21Qcm90b2NvbE1h
cDsKLSAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1c3RvbVByb3RvY29sTWFwOwotICAgIFdLQ3Vz
dG9tUHJvdG9jb2wgKnByb3RvY29sRm9ySUQodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCk7Ci0j
ZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKENV
U1RPTV9QUk9UT0NPTFMpCi0KLSNlbmRpZiAvLyBDdXN0b21Qcm90b2NvbE1hbmFnZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNz
YWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThlZmQ4Mzg5MTY1N2JmODc2
MTNkOGJiZGFjYmE2YTFlMWE4ZjBjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBA
IC0xLDMyICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
I2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQotCi1tZXNzYWdlcyAtPiBDdXN0b21Qcm90b2Nv
bE1hbmFnZXIgewotICAgIERpZEZhaWxXaXRoRXJyb3IodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKLSAgICBEaWRMb2FkRGF0YSh1aW50NjRf
dCBjdXN0b21Qcm90b2NvbElELCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgRGlk
UmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UsIHVpbnQzMl90IGNhY2hlU3RvcmFnZVBvbGljeSkKLSAgICBE
aWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCi19Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdl
ck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlck1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGU5NjAwM2U4ODcyNjlkN2VlZWJlNDg1Yzk4N2E4OTg5NGU0ZjFlOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgiCi0KLSNp
ZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKLQotI2ltcG9ydCAiQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgotI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9ydCAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzLmgiCi0jaW1wb3J0
IDxXZWJDb3JlL0tVUkwuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlQ3VzdG9tUHJvdG9jb2xJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90
IHVuaXF1ZUN1c3RvbVByb3RvY29sSUQgPSAwOwotICAgIHJldHVybiArK3VuaXF1ZUN1c3RvbVBy
b3RvY29sSUQ7Ci19Ci0KLUBpbnRlcmZhY2UgV0tDdXN0b21Qcm90b2NvbCA6IE5TVVJMUHJvdG9j
b2wgewotQHByaXZhdGUKLSAgICB1aW50NjRfdCBfY3VzdG9tUHJvdG9jb2xJRDsKLX0KLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRDsKLUBl
bmQKLQotQGltcGxlbWVudGF0aW9uIFdLQ3VzdG9tUHJvdG9jb2wKLQotQHN5bnRoZXNpemUgY3Vz
dG9tUHJvdG9jb2xJRCA9IF9jdXN0b21Qcm90b2NvbElEOwotCi0rIChCT09MKWNhbkluaXRXaXRo
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAotewotICAgIHJldHVybiBXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6c2hhcmVkKCkuc3VwcG9ydHNTY2hlbWUoW1tbcmVxdWVzdCBV
UkxdIHNjaGVtZV0gbG93ZXJjYXNlU3RyaW5nXSk7Ci19Ci0KLSsgKE5TVVJMUmVxdWVzdCAqKWNh
bm9uaWNhbFJlcXVlc3RGb3JSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0Ci17Ci0gICAg
cmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLSsgKEJPT0wpcmVxdWVzdElzQ2FjaGVFcXVpdmFsZW50OihO
U1VSTFJlcXVlc3QgKilhIHRvUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopYgotewotICAgIHJldHVy
biBOTzsKLX0KLQotLSAoaWQpaW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
IGNhY2hlZFJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopY2FjaGVkUmVzcG9uc2UgY2xp
ZW50OihpZDxOU1VSTFByb3RvY29sQ2xpZW50PiljbGllbnQKLXsKLSAgICBzZWxmID0gW3N1cGVy
IGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0IGNhY2hlZFJlc3BvbnNlOmNhY2hlZFJlc3BvbnNlIGNs
aWVudDpjbGllbnRdOwotICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAK
LSAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGdlbmVyYXRlQ3VzdG9tUHJvdG9jb2xJRCgpOwotICAg
IFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzaGFyZWQoKS5hZGRDdXN0b21Qcm90b2Nv
bChzZWxmKTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClzdGFydExvYWRpbmcKLXsK
LSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkN1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5OjpTdGFydExvYWRpbmcoc2VsZi5jdXN0b21Qcm90b2Nv
bElELCBbc2VsZiByZXF1ZXN0XSksIDApOwotfQotCi0tICh2b2lkKXN0b3BMb2FkaW5nCi17Ci0g
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eTo6U3RvcExvYWRpbmcoc2VsZi5jdXN0b21Qcm90b2NvbElE
KSwgMCk7Ci0gICAgV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnNoYXJlZCgpLnJlbW92
ZUN1c3RvbVByb3RvY29sKHNlbGYpOwotfQotCi1AZW5kCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1DdXN0b21Qcm90b2NvbE1hbmFnZXImIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c2hhcmVkKCkK
LXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1c3RvbVByb3RvY29sTWFuYWdlciwgY3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLCAoKSk7Ci0gICAgcmV0dXJuIGN1c3RvbVByb3RvY29sTWFuYWdlcjsK
LX0KLQotdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2xD
bGFzcygpCi17Ci0gICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpbV0tDdXN0b21Qcm90
b2NvbCBjbGFzc11dOwotfQotICAgIAotdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1
c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9jb2wgKmN1c3RvbVByb3RvY29sKQotewotICAgIEFT
U0VSVChjdXN0b21Qcm90b2NvbCk7Ci0gICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9t
UHJvdG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwotfQotCi12b2lkIEN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2Nv
bCAqY3VzdG9tUHJvdG9jb2wpCi17Ci0gICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBt
X2N1c3RvbVByb3RvY29sTWFwLnJlbW92ZShjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElE
KTsKLX0KLSAgICAKLXZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZShj
b25zdCBTdHJpbmcmIHNjaGVtZSkKLXsKLSAgICBtX3JlZ2lzdGVyZWRTY2hlbWVzLmFkZChzY2hl
bWUpOwotfQotICAgIAotdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCi17Ci0gICAgbV9yZWdpc3RlcmVkU2NoZW1lcy5yZW1v
dmUoc2NoZW1lKTsKLX0KLQotYm9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2No
ZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQotewotICAgIHJldHVybiBtX3JlZ2lzdGVyZWRTY2hl
bWVzLmNvbnRhaW5zKHNjaGVtZSk7Ci19Ci0KLXZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
LXsKLSAgICBkaWRSZWNlaXZlQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwotfQotCi12b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6
ZGlkRmFpbFdpdGhFcnJvcih1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBXS0N1c3RvbVByb3RvY29sICpwcm90b2Nv
bCA9IHByb3RvY29sRm9ySUQoY3VzdG9tUHJvdG9jb2xJRCk7Ci0gICAgaWYgKCFwcm90b2NvbCkK
LSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2Nv
bDpwcm90b2NvbCBkaWRGYWlsV2l0aEVycm9yOmVycm9yLm5zRXJyb3IoKV07Ci0gICAgcmVtb3Zl
Q3VzdG9tUHJvdG9jb2wocHJvdG9jb2wpOwotfQotCi12b2lkIEN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkTG9hZERhdGEodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSkKLXsKLSAgICBXS0N1c3RvbVByb3RvY29sICpwcm90b2NvbCA9
IHByb3RvY29sRm9ySUQoY3VzdG9tUHJvdG9jb2xJRCk7Ci0gICAgaWYgKCFwcm90b2NvbCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2NvbDpw
cm90b2NvbCBkaWRMb2FkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6KHZvaWQqKWRhdGEuZGF0
YSgpIGxlbmd0aDpkYXRhLnNpemUoKV1dOwotfQotCi12b2lkIEN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQ
b2xpY3kpCi17Ci0gICAgV0tDdXN0b21Qcm90b2NvbCAqcHJvdG9jb2wgPSBwcm90b2NvbEZvcklE
KGN1c3RvbVByb3RvY29sSUQpOwotICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBbW3Byb3RvY29sIGNsaWVudF0gVVJMUHJvdG9jb2w6cHJvdG9jb2wgZGlkUmVj
ZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBjYWNoZVN0b3JhZ2VQb2xpY3k6
c3RhdGljX2Nhc3Q8TlNVUkxDYWNoZVN0b3JhZ2VQb2xpY3k+KGNhY2hlU3RvcmFnZVBvbGljeSld
OwotfQotCi12b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkRmluaXNoTG9hZGluZyh1aW50
NjRfdCBjdXN0b21Qcm90b2NvbElEKQotewotICAgIFdLQ3VzdG9tUHJvdG9jb2wgKnByb3RvY29s
ID0gcHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKLSAgICBpZiAoIXByb3RvY29sKQot
ICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgW1twcm90b2NvbCBjbGllbnRdIFVSTFByb3RvY29s
RGlkRmluaXNoTG9hZGluZzpwcm90b2NvbF07Ci0gICAgcmVtb3ZlQ3VzdG9tUHJvdG9jb2wocHJv
dG9jb2wpOwotfQotCi1XS0N1c3RvbVByb3RvY29sICpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnBy
b3RvY29sRm9ySUQodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkKLXsKLSAgICBDdXN0b21Qcm90
b2NvbE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbVByb3RvY29sTWFwLmZpbmQoY3Vz
dG9tUHJvdG9jb2xJRCk7Ci0gICAgaWYgKGl0ID09IG1fY3VzdG9tUHJvdG9jb2xNYXAuZW5kKCkp
Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgCi0gICAgQVNTRVJUKGl0LT52YWx1ZSk7Ci0gICAg
cmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykK
</data>
<flag name="review"
          id="196548"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>