[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

SOAP Envelope Error

markarichman

9/20/2006 6:22:00 PM

soap4r is generating this:

POST /Wahp.Provisioning/User.asmx HTTP/1.1
SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
Content-Type: text/xml; charset=utf-8
Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32])
Date: Wed Sep 20 13:44:12 -0400 2006
Content-Length: 437
Host: web001whp001:3250

<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
xmlns:env="http://schemas.xmlsoap.org/soap/envel...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
<env:Body>
<n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
<n1:username>Username</n1:username>
<n1:password>Password</n1:password>
</n1:IsValidLogin>
</env:Body>
</env:Envelope>

My service expects this:

POST /Wahp.Provisioning/User.asmx HTTP/1.1
Host: web001whp001
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
xmlns:xsd="http://www.w3.org/2001/XMLSc...
xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
<soap:Body>
<IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
<username>string</username>
<password>string</password>
</IsValidLogin>
</soap:Body>
</soap:Envelope>

What am I doing wrong?

class Test
def initialize()
@driver = Driver.new(URL,NS)
@driver.wiredump_dev = STDOUT
@driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
PASSWORD]
@driver.default_encodingstyle =
SOAP::EncodingStyle::ASPDotNetHandler::Namespace

@driver.add_method_with_soapaction('IsValidLogin',SOAP_ACTION,'username','password')
puts @driver.IsValidLogin("Username","Password")
end
end

- Mark

6 Answers

David Sledge

9/20/2006 7:47:00 PM

0



Kent Sibilev wrote:
> On 9/20/06, Mark A. Richman <markarichman@gmail.com> wrote:
>>
>> soap4r is generating this:
>>
>> POST /Wahp.Provisioning/User.asmx HTTP/1.1
>> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
>> Content-Type: text/xml; charset=utf-8
>> Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
>> User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32])
>> Date: Wed Sep 20 13:44:12 -0400 2006
>> Content-Length: 437
>> Host: web001whp001:3250
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>> <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
>> xmlns:env="http://schemas.xmlsoap.org/soap/envel...
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
>> <env:Body>
>> <n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
>> <n1:username>Username</n1:username>
>> <n1:password>Password</n1:password>
>> </n1:IsValidLogin>
>> </env:Body>
>> </env:Envelope>
>>
>> My service expects this:
>>
>> POST /Wahp.Provisioning/User.asmx HTTP/1.1
>> Host: web001whp001
>> Content-Type: text/xml; charset=utf-8
>> Content-Length: length
>> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
>>
>> <?xml version="1.0" encoding="utf-8"?>
>> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
>> xmlns:xsd="http://www.w3.org/2001/XMLSc...
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
>> <soap:Body>
>> <IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
>> <username>string</username>
>> <password>string</password>
>> </IsValidLogin>
>> </soap:Body>
>> </soap:Envelope>
>>
>> What am I doing wrong?
>>
>
>
> You are doing nothing wrong. Both xmls are the same according to SOAP
> spec.
>

Are you sure the problem is with the envelope itself. I had a problem
talking to .net webservices but the problem was with namespace tags
being applied were they shouldn't. Your examples above show similar
differences.

<n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
<n1:username>Username</n1:username>
<n1:password>Password</n1:password>
</n1:IsValidLogin>

<IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
<username>string</username>
<password>string</password>
</IsValidLogin>



markarichman

9/20/2006 8:36:00 PM

0

I tend to agree...I see the ns1 namespace, but also env vs. soap. Any
thoughts on how to make this work with .asmx?

Thanks,
Mark

David Sledge wrote:
> Kent Sibilev wrote:
> > On 9/20/06, Mark A. Richman <markarichman@gmail.com> wrote:
> >>
> >> soap4r is generating this:
> >>
> >> POST /Wahp.Provisioning/User.asmx HTTP/1.1
> >> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
> >> Content-Type: text/xml; charset=utf-8
> >> Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
> >> User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32])
> >> Date: Wed Sep 20 13:44:12 -0400 2006
> >> Content-Length: 437
> >> Host: web001whp001:3250
> >>
> >> <?xml version="1.0" encoding="utf-8" ?>
> >> <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
> >> xmlns:env="http://schemas.xmlsoap.org/soap/envel...
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
> >> <env:Body>
> >> <n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
> >> <n1:username>Username</n1:username>
> >> <n1:password>Password</n1:password>
> >> </n1:IsValidLogin>
> >> </env:Body>
> >> </env:Envelope>
> >>
> >> My service expects this:
> >>
> >> POST /Wahp.Provisioning/User.asmx HTTP/1.1
> >> Host: web001whp001
> >> Content-Type: text/xml; charset=utf-8
> >> Content-Length: length
> >> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
> >>
> >> <?xml version="1.0" encoding="utf-8"?>
> >> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
> >> xmlns:xsd="http://www.w3.org/2001/XMLSc...
> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
> >> <soap:Body>
> >> <IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
> >> <username>string</username>
> >> <password>string</password>
> >> </IsValidLogin>
> >> </soap:Body>
> >> </soap:Envelope>
> >>
> >> What am I doing wrong?
> >>
> >
> >
> > You are doing nothing wrong. Both xmls are the same according to SOAP
> > spec.
> >
>
> Are you sure the problem is with the envelope itself. I had a problem
> talking to .net webservices but the problem was with namespace tags
> being applied were they shouldn't. Your examples above show similar
> differences.
>
> <n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
> <n1:username>Username</n1:username>
> <n1:password>Password</n1:password>
> </n1:IsValidLogin>
>
> <IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
> <username>string</username>
> <password>string</password>
> </IsValidLogin>

Werner Bohl

9/20/2006 9:35:00 PM

0

Mark A. Richman wrote:
> soap4r is generating this:
>
> POST /Wahp.Provisioning/User.asmx HTTP/1.1
> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
> Content-Type: text/xml; charset=utf-8
> Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
> User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32])
> Date: Wed Sep 20 13:44:12 -0400 2006
> Content-Length: 437
> Host: web001whp001:3250
>
> <?xml version="1.0" encoding="utf-8" ?>
> <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
> xmlns:env="http://schemas.xmlsoap.org/soap/envel...
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
> <env:Body>
> <n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
> <n1:username>Username</n1:username>
> <n1:password>Password</n1:password>
> </n1:IsValidLogin>
> </env:Body>
> </env:Envelope>
>
> My service expects this:
>
> POST /Wahp.Provisioning/User.asmx HTTP/1.1
> Host: web001whp001
> Content-Type: text/xml; charset=utf-8
> Content-Length: length
> SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
>
> <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
> xmlns:xsd="http://www.w3.org/2001/XMLSc...
> xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
> <soap:Body>
> <IsValidLogin xmlns="http://affinity.com/Wahp/Provisioning...
> <username>string</username>
> <password>string</password>
> </IsValidLogin>
> </soap:Body>
> </soap:Envelope>
>
> What am I doing wrong?
>
> class Test
> def initialize()
> @driver = Driver.new(URL,NS)
> @driver.wiredump_dev = STDOUT
> @driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
> PASSWORD]
> @driver.default_encodingstyle =
> SOAP::EncodingStyle::ASPDotNetHandler::Namespace
>
> @driver.add_method_with_soapaction('IsValidLogin',SOAP_ACTION,'username','password')
> puts @driver.IsValidLogin("Username","Password")
> end
> end
>
> - Mark
>
>
>
>
I had the same exact problem with one of our data providers, and found
no way to make it work with
soap4r nor JOpera (a java based service orchestrator) nor some other
java wsdl tools tried.
So from strict xml point of view this wsdls are equivalent, but most
non-windoze wsdl parsers choke on it.
Luckily our provider was considering migrating to Java+Axis, and this
"feature" of .NET convinced them,
so this became a non-issue for me.

Werner Bohl

David Sledge

9/20/2006 10:08:00 PM

0



Kent Sibilev wrote:
> On 9/20/06, Mark A. Richman <markarichman@gmail.com> wrote:
>>
>> I tend to agree...I see the ns1 namespace, but also env vs. soap. Any
>> thoughts on how to make this work with .asmx?
>>
>> Thanks,
>> Mark
>>
>
> 'env' and 'soap' are just markers or identifiers of a namespace. Their
> actual names do not matter, what matters is URI they point to. Please,
> refer
> to the spec: http://www.w3.org/TR/REC-...
>
> I don't know what kind of problem you are having with .Net.
>

What does the WSDL look like?

markarichman

9/21/2006 3:07:00 PM

0

I figured out that 90% of my problem was a trailing slash in my
namespace! I get a valid response from ASP.NET now.

However, my final question is how to convert my result into a boolean.
I get this object as a result now: #<SOAP::Mapping::Object:0x3ddd1d4>

Here's my code:

require 'soap/rpc/driver'
include SOAP::RPC

URL = "http://web001whp001:3250/Wahp.Provisioning/User.asmx"
NS = "http://affinity.com/Wahp/Provisio...
SOAP_ACTION = "http://affinity.com/Wahp/Provisioning/IsValidL...
USERNAME = "SHARED\\Administrator"
PASSWORD = "$secure$"

class AuthenticationClient
def initialize()
@driver = Driver.new(URL,NS,SOAP_ACTION)
@driver.wiredump_dev = STDOUT
@driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
PASSWORD]

@driver.add_document_method('IsValidLogin',SOAP_ACTION,
[XSD::QName.new(NS,'IsValidLogin')],
[XSD::QName.new(NS,'IsValidLoginResult')])

result =
@driver.IsValidLogin(:username=>"Username",:password=>"Password")
end
end

AuthenticationClient.new

And here is my SOAP response:

HTTP/1.1 200 OK
Date: Thu, 21 Sep 2006 14:41:58 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 383

<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.
xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchem...
"
xmlns:xsd="http://www.w3.org/2001/XMLSc...><soap:Body><IsValidLog...
xmlns="http://affinity.com/Wahp/Provisio...><IsValidLoginResult>false</IsValid
LoginResult></IsValidLoginResponse></soap:Body></soap:Envelope>

Thanks,
Mark


Werner Bohl wrote:
> Mark A. Richman wrote:
> > soap4r is generating this:
> >
> > POST /Wahp.Provisioning/User.asmx HTTP/1.1
> > SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
> > Content-Type: text/xml; charset=utf-8
> > Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
> > User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-mswin32])
> > Date: Wed Sep 20 13:44:12 -0400 2006
> > Content-Length: 437
> > Host: web001whp001:3250
> >
> > <?xml version="1.0" encoding="utf-8" ?>
> > <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSc...
> > xmlns:env="http://schemas.xmlsoap.org/soap/envel...
> > xmlns:xsi="http://www.w3.org/2001/XMLSchem...">
> > <env:Body>
> > <n1:IsValidLogin xmlns:n1="http://affinity.com/Wahp/Provisioning/...
> > <n1:username>Username</n1:username>
> > <n1:password>Password</n1:password>
> > </n1:IsValidLogin>
> > </env:Body>
> > </env:Envelope>
> >
> > My service expects this:
> >
> > POST /Wahp.Provisioning/User.asmx HTTP/1.1
> > Host: web001whp001
> > Content-Type: text/xml; charset=utf-8
> > Content-Length: length
> > SOAPAction: "http://affinity.com/Wahp/Provisioning/IsValidL...
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchem..."
> > xmlns:xsd="http://www.w3.org/2001/XMLSc...
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
> > <soap:Body>
> > <IsValidLogin xmlns="http://affinity.com/Wahp/Provisio...>
> > <username>string</username>
> > <password>string</password>
> > </IsValidLogin>
> > </soap:Body>
> > </soap:Envelope>
> >
> > What am I doing wrong?
> >
> > class Test
> > def initialize()
> > @driver = Driver.new(URL,NS)
> > @driver.wiredump_dev = STDOUT
> > @driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
> > PASSWORD]
> > @driver.default_encodingstyle =
> > SOAP::EncodingStyle::ASPDotNetHandler::Namespace
> >
> > @driver.add_method_with_soapaction('IsValidLogin',SOAP_ACTION,'username','password')
> > puts @driver.IsValidLogin("Username","Password")
> > end
> > end
> >
> > - Mark
> >
> >
> >
> >
> I had the same exact problem with one of our data providers, and found
> no way to make it work with
> soap4r nor JOpera (a java based service orchestrator) nor some other
> java wsdl tools tried.
> So from strict xml point of view this wsdls are equivalent, but most
> non-windoze wsdl parsers choke on it.
> Luckily our provider was considering migrating to Java+Axis, and this
> "feature" of .NET convinced them,
> so this became a non-issue for me.
>
> Werner Bohl
>
> --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA)
> Content-Type: text/x-vcard; charset=utf-8
> Content-Transfer-Encoding: 7BIT
> Content-Disposition: inline;
> filename="wbohl.vcf"
> X-Google-AttachSize: 184
>
> begin:vcard
> fn:Werner Bohl
> n:Bohl;Werner
> email;internet:wbohl@racsa.co.cr
> tel;work:506-291-1374
> tel;home:506-232-0398
> tel;cell:506-876-2744
> x-mozilla-html:TRUE
> version:2.1
> end:vcard
>
>
> --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA)--

Matt Rose

9/22/2006 12:43:00 AM

0

try object.inspect to see what methods and variables it contains.
The answer you're looking for is probably hidden within

Matt

On 21-Sep-06, at 11:10 AM, Mark A. Richman wrote:

> I figured out that 90% of my problem was a trailing slash in my
> namespace! I get a valid response from ASP.NET now.
>
> However, my final question is how to convert my result into a boolean.
> I get this object as a result now: #<SOAP::Mapping::Object:0x3ddd1d4>
>
> Here's my code:
>
> require 'soap/rpc/driver'
> include SOAP::RPC
>
> URL = "http://web001whp001:3250/Wahp.Provisioning/User.asmx"
> NS = "http://affinity...Provisio...
> SOAP_ACTION = "http://affinity...Provisioning/IsValidL...
> USERNAME = "SHARED\\Administrator"
> PASSWORD = "$secure$"
>
> class AuthenticationClient
> def initialize()
> @driver = Driver.new(URL,NS,SOAP_ACTION)
> @driver.wiredump_dev = STDOUT
> @driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
> PASSWORD]
>
> @driver.add_document_method('IsValidLogin',SOAP_ACTION,
> [XSD::QName.new(NS,'IsValidLogin')],
> [XSD::QName.new(NS,'IsValidLoginResult')])
>
> result =
> @driver.IsValidLogin(:username=>"Username",:password=>"Password")
> end
> end
>
> AuthenticationClient.new
>
> And here is my SOAP response:
>
> HTTP/1.1 200 OK
> Date: Thu, 21 Sep 2006 14:41:58 GMT
> Server: Microsoft-IIS/6.0
> MicrosoftOfficeWebServer: 5.0_Pub
> X-Powered-By: ASP.NET
> X-AspNet-Version: 2.0.50727
> Cache-Control: private, max-age=0
> Content-Type: text/xml; charset=utf-8
> Content-Length: 383
>
> <?xml version="1.0" encoding="utf-8"?><soap:Envelope
> xmlns:soap="http://schemas.
> xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3...XMLSchem...
> "
> xmlns:xsd="http://www.w3...
> XMLSchema"><soap:Body><IsValidLoginResponse
> xmlns="http://affinity...
> Provisioning"><IsValidLoginResult>false</IsValid
> LoginResult></IsValidLoginResponse></soap:Body></soap:Envelope>
>
> Thanks,
> Mark
>
>
> Werner Bohl wrote:
>> Mark A. Richman wrote:
>>> soap4r is generating this:
>>>
>>> POST /Wahp.Provisioning/User.asmx HTTP/1.1
>>> SOAPAction: "http://affinity...Provisioning/IsValidL...
>>> Content-Type: text/xml; charset=utf-8
>>> Authorization: Basic U0hBUkVEXuaXN0cmF0b3I6JZSQ=
>>> User-Agent: SOAP4R/1.5.5 (/114, ruby 1.8.5 (2006-08-25) [i386-
>>> mswin32])
>>> Date: Wed Sep 20 13:44:12 -0400 2006
>>> Content-Length: 437
>>> Host: web001whp001:3250
>>>
>>> <?xml version="1.0" encoding="utf-8" ?>
>>> <env:Envelope xmlns:xsd="http://www.w3...XMLSchema"
>>> xmlns:env="http://schemas.xmlsoap.org/soap/envel...
>>> xmlns:xsi="http://www.w3...XMLSchem...">
>>> <env:Body>
>>> <n1:IsValidLogin xmlns:n1="http://affinity...
>>> Provisioning/">
>>> <n1:username>Username</n1:username>
>>> <n1:password>Password</n1:password>
>>> </n1:IsValidLogin>
>>> </env:Body>
>>> </env:Envelope>
>>>
>>> My service expects this:
>>>
>>> POST /Wahp.Provisioning/User.asmx HTTP/1.1
>>> Host: web001whp001
>>> Content-Type: text/xml; charset=utf-8
>>> Content-Length: length
>>> SOAPAction: "http://affinity...Provisioning/IsValidL...
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <soap:Envelope xmlns:xsi="http://www.w3...XMLSchem..."
>>> xmlns:xsd="http://www.w3...XMLSchema"
>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envel...>
>>> <soap:Body>
>>> <IsValidLogin xmlns="http://affinity...Provisio...>
>>> <username>string</username>
>>> <password>string</password>
>>> </IsValidLogin>
>>> </soap:Body>
>>> </soap:Envelope>
>>>
>>> What am I doing wrong?
>>>
>>> class Test
>>> def initialize()
>>> @driver = Driver.new(URL,NS)
>>> @driver.wiredump_dev = STDOUT
>>> @driver.options["protocol.http.basic_auth"] << [URL, USERNAME,
>>> PASSWORD]
>>> @driver.default_encodingstyle =
>>> SOAP::EncodingStyle::ASPDotNetHandler::Namespace
>>>
>>> @driver.add_method_with_soapaction
>>> ('IsValidLogin',SOAP_ACTION,'username','password')
>>> puts @driver.IsValidLogin("Username","Password")
>>> end
>>> end
>>>
>>> - Mark
>>>
>>>
>>>
>>>
>> I had the same exact problem with one of our data providers, and
>> found
>> no way to make it work with
>> soap4r nor JOpera (a java based service orchestrator) nor some other
>> java wsdl tools tried.
>> So from strict xml point of view this wsdls are equivalent, but most
>> non-windoze wsdl parsers choke on it.
>> Luckily our provider was considering migrating to Java+Axis, and this
>> "feature" of .NET convinced them,
>> so this became a non-issue for me.
>>
>> Werner Bohl
>>
>> --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA)
>> Content-Type: text/x-vcard; charset=utf-8
>> Content-Transfer-Encoding: 7BIT
>> Content-Disposition: inline;
>> filename="wbohl.vcf"
>> X-Google-AttachSize: 184
>>
>> begin:vcard
>> fn:Werner Bohl
>> n:Bohl;Werner
>> email;internet:wbohl@racsa.co.cr
>> tel;work:506-291-1374
>> tel;home:506-232-0398
>> tel;cell:506-876-2744
>> x-mozilla-html:TRUE
>> version:2.1
>> end:vcard
>>
>>
>> --Boundary_(ID_ixlm4ZaFFHbqrroJILetBA)--
>