diff --git a/README.markdown b/README.markdown index 154d13b2..e4b48268 100644 --- a/README.markdown +++ b/README.markdown @@ -46,7 +46,7 @@ Combine this gem with the [geokit-rails](http://github.com/geokit/geokit-rails) * MapQuest ### address geocoders that also provide reverse geocoding -* Google - requires an API key. Also supports multiple results and bounding box/country code biasing. +* Google - Supports multiple results and bounding box/country code biasing. Also supports Maps API for Business keys; see the configuration section below. * FCC * Open Street Map @@ -57,6 +57,15 @@ Combine this gem with the [geokit-rails](http://github.com/geokit/geokit-rails) * MaxMind * freegeoip.net +### HTTPS-supporting geocoders +* Google +* Yahoo +* Bing +* FCC +* MapQuest + +Options to control the use of HTTPS are described below in the Configuration section. + ## QUICK START ```ruby @@ -159,6 +168,16 @@ If you're using this gem by itself, here are the configuration options: # The IP provider order. Valid symbols are :ip,:geo_plugin. # As before, make sure you read up on relevant Terms of Use for each. # Geokit::Geocoders::ip_provider_order = [:external,:geo_plugin,:ip] + + # Disable HTTPS globally. This option can also be set on individual + # geocoder classes. + Geokit::Geocoders::secure = false + + # Control verification of the server certificate for geocoders using HTTPS + Geokit::Geocoders::ssl_verify_mode = OpenSSL::SSL::VERIFY_(PEER/NONE) + # Setting this to VERIFY_NONE may be needed on systems that don't have + # a complete or up to date root certificate store. Only applies to + # the Net::HTTP adapter. ``` ### Google Geocoder Tricks diff --git a/fixtures/vcr_cassettes/bing_full.yml b/fixtures/vcr_cassettes/bing_full.yml index d0611d80..f3bc149f 100644 --- a/fixtures/vcr_cassettes/bing_full.yml +++ b/fixtures/vcr_cassettes/bing_full.yml @@ -2,51 +2,44 @@ http_interactions: - request: method: get - uri: http://dev.virtualearth.net/REST/v1/Locations/100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml + uri: https://dev.virtualearth.net/REST/v1/Locations/100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml body: encoding: US-ASCII string: '' headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - - ! '*/*' + - '*/*' User-Agent: - Ruby response: status: code: 200 - message: !binary |- - T0s= + message: OK headers: - !binary "Q2FjaGUtQ29udHJvbA==": - - !binary |- - bm8tY2FjaGU= - !binary "VHJhbnNmZXItRW5jb2Rpbmc=": - - !binary |- - Y2h1bmtlZA== - !binary "Q29udGVudC1UeXBl": - - !binary |- - YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04 - !binary "U2VydmVy": - - !binary |- - TWljcm9zb2Z0LUlJUy84LjA= - !binary "WC1CbS1UcmFjZWlk": - - !binary |- - NTU5ZWI3NGYxMWY4NDQyZjllN2VhNzJjMmI2OWU1YTM= - !binary "WC1CbS1TcnY=": - - !binary |- - U0lOTTAwMDAwOSwgU0lOTVNOVk0wMDAxNDUsIFNJTklQRVZNMDAwMDEw - !binary "WC1Ncy1CbS1Xcy1JbmZv": - - !binary |- - MA== - !binary "WC1Bc3BuZXQtVmVyc2lvbg==": - - !binary |- - NC4wLjMwMzE5 - !binary "WC1Qb3dlcmVkLUJ5": - - !binary |- - QVNQLk5FVA== - !binary "RGF0ZQ==": - - !binary |- - U2F0LCAxNCBEZWMgMjAxMyAwNTo0MDo1MyBHTVQ= + Cache-Control: + - no-cache + Transfer-Encoding: + - chunked + Content-Type: + - application/xml; charset=utf-8 + Vary: + - Accept-Encoding + Server: + - Microsoft-IIS/8.0 + X-Bm-Traceid: + - 9ab7e47e5657431aa8344781ca6a66bb + X-Bm-Srv: + - CO30276338, CO3SCH010265307, CO3SCH010265205 + X-Ms-Bm-Ws-Info: + - '0' + X-Aspnet-Version: + - 4.0.30319 + X-Powered-By: + - ASP.NET + Date: + - Sun, 26 Jan 2014 05:51:02 GMT body: encoding: ASCII-8BIT string: !binary |- @@ -55,7 +48,7 @@ http_interactions: aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w - eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB + eXJpZ2h0IMKpIDIwMTQgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l @@ -65,38 +58,38 @@ http_interactions: ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0 YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh - bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD41NTllYjc0 - ZjExZjg0NDJmOWU3ZWE3MmMyYjY5ZTVhM3xTSU5NMDAwMDA5fDAyLjAwLjE4 - My4yMzAwfFNJTk1TTlZNMDAwMTQ1LCBTSU5JUEVWTTAwMDAxMDwvVHJhY2VJ - ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+ - MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+ - MTAwIFNwZWFyIFN0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwNTwvTmFtZT48 - UG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4NTI8L0xhdGl0dWRlPjxM - b25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xvbmdpdHVkZT48L1BvaW50 - PjxCb3VuZGluZ0JveD48U291dGhMYXRpdHVkZT4zNy43ODgyODk2ODcyMTQ1 - MjI8L1NvdXRoTGF0aXR1ZGU+PFdlc3RMb25naXR1ZGU+LTEyMi40MDA1MTQy - MzQ5MjYzMjwvV2VzdExvbmdpdHVkZT48Tm9ydGhMYXRpdHVkZT4zNy43OTYw - MTUxMjIzNTU4NzU8L05vcnRoTGF0aXR1ZGU+PEVhc3RMb25naXR1ZGU+LTEy - Mi4zODc0ODAxNDk4Mzk2ODwvRWFzdExvbmdpdHVkZT48L0JvdW5kaW5nQm94 - PjxFbnRpdHlUeXBlPkFkZHJlc3M8L0VudGl0eVR5cGU+PEFkZHJlc3M+PEFk - ZHJlc3NMaW5lPjEwMCBTcGVhciBTdDwvQWRkcmVzc0xpbmU+PEFkbWluRGlz - dHJpY3Q+Q0E8L0FkbWluRGlzdHJpY3Q+PEFkbWluRGlzdHJpY3QyPlNhbiBG - cmFuY2lzY28gQ28uPC9BZG1pbkRpc3RyaWN0Mj48Q291bnRyeVJlZ2lvbj5V - bml0ZWQgU3RhdGVzPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNz - PjEwMCBTcGVhciBTdCwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDU8L0Zvcm1h - dHRlZEFkZHJlc3M+PExvY2FsaXR5PlNhbiBGcmFuY2lzY288L0xvY2FsaXR5 - PjxQb3N0YWxDb2RlPjk0MTA1PC9Qb3N0YWxDb2RlPjwvQWRkcmVzcz48Q29u - ZmlkZW5jZT5IaWdoPC9Db25maWRlbmNlPjxNYXRjaENvZGU+R29vZDwvTWF0 - Y2hDb2RlPjxHZW9jb2RlUG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4 - NTI8L0xhdGl0dWRlPjxMb25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xv - bmdpdHVkZT48Q2FsY3VsYXRpb25NZXRob2Q+UGFyY2VsPC9DYWxjdWxhdGlv - bk1ldGhvZD48VXNhZ2VUeXBlPkRpc3BsYXk8L1VzYWdlVHlwZT48L0dlb2Nv - ZGVQb2ludD48R2VvY29kZVBvaW50PjxMYXRpdHVkZT4zNy43OTIzNjIyMTMx - MzQ4PC9MYXRpdHVkZT48TG9uZ2l0dWRlPi0xMjIuMzkzODI5MzQ1NzAzPC9M - b25naXR1ZGU+PENhbGN1bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0Nh - bGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+Um91dGU8L1VzYWdlVHlwZT48 - L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVzb3VyY2VzPjwvUmVzb3Vy - Y2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25zZT4= + bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD45YWI3ZTQ3 + ZTU2NTc0MzFhYTgzNDQ3ODFjYTZhNjZiYnxDTzMwMjc2MzM4fDAyLjAwLjEw + Ny4xNzAwfENPM1NDSDAxMDI2NTMwNywgQ08zU0NIMDEwMjY1MjA1PC9UcmFj + ZUlkPjxSZXNvdXJjZVNldHM+PFJlc291cmNlU2V0PjxFc3RpbWF0ZWRUb3Rh + bD4xPC9Fc3RpbWF0ZWRUb3RhbD48UmVzb3VyY2VzPjxMb2NhdGlvbj48TmFt + ZT4xMDAgU3BlYXIgU3QsIFNhbiBGcmFuY2lzY28sIENBIDk0MTA1PC9OYW1l + PjxQb2ludD48TGF0aXR1ZGU+MzcuNzkyMTUyNDA0Nzg1MjwvTGF0aXR1ZGU+ + PExvbmdpdHVkZT4tMTIyLjM5Mzk5NzE5MjM4MzwvTG9uZ2l0dWRlPjwvUG9p + bnQ+PEJvdW5kaW5nQm94PjxTb3V0aExhdGl0dWRlPjM3Ljc4ODI4OTY4NzIx + NDUyMjwvU291dGhMYXRpdHVkZT48V2VzdExvbmdpdHVkZT4tMTIyLjQwMDUx + NDIzNDkyNjMyPC9XZXN0TG9uZ2l0dWRlPjxOb3J0aExhdGl0dWRlPjM3Ljc5 + NjAxNTEyMjM1NTg3NTwvTm9ydGhMYXRpdHVkZT48RWFzdExvbmdpdHVkZT4t + MTIyLjM4NzQ4MDE0OTgzOTY4PC9FYXN0TG9uZ2l0dWRlPjwvQm91bmRpbmdC + b3g+PEVudGl0eVR5cGU+QWRkcmVzczwvRW50aXR5VHlwZT48QWRkcmVzcz48 + QWRkcmVzc0xpbmU+MTAwIFNwZWFyIFN0PC9BZGRyZXNzTGluZT48QWRtaW5E + aXN0cmljdD5DQTwvQWRtaW5EaXN0cmljdD48QWRtaW5EaXN0cmljdDI+U2Fu + IEZyYW5jaXNjbyBDby48L0FkbWluRGlzdHJpY3QyPjxDb3VudHJ5UmVnaW9u + PlVuaXRlZCBTdGF0ZXM8L0NvdW50cnlSZWdpb24+PEZvcm1hdHRlZEFkZHJl + c3M+MTAwIFNwZWFyIFN0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwNTwvRm9y + bWF0dGVkQWRkcmVzcz48TG9jYWxpdHk+U2FuIEZyYW5jaXNjbzwvTG9jYWxp + dHk+PFBvc3RhbENvZGU+OTQxMDU8L1Bvc3RhbENvZGU+PC9BZGRyZXNzPjxD + b25maWRlbmNlPkhpZ2g8L0NvbmZpZGVuY2U+PE1hdGNoQ29kZT5Hb29kPC9N + YXRjaENvZGU+PEdlb2NvZGVQb2ludD48TGF0aXR1ZGU+MzcuNzkyMTUyNDA0 + Nzg1MjwvTGF0aXR1ZGU+PExvbmdpdHVkZT4tMTIyLjM5Mzk5NzE5MjM4Mzwv + TG9uZ2l0dWRlPjxDYWxjdWxhdGlvbk1ldGhvZD5QYXJjZWw8L0NhbGN1bGF0 + aW9uTWV0aG9kPjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjwvR2Vv + Y29kZVBvaW50PjxHZW9jb2RlUG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjM2MjIx + MzEzNDg8L0xhdGl0dWRlPjxMb25naXR1ZGU+LTEyMi4zOTM4MjkzNDU3MDM8 + L0xvbmdpdHVkZT48Q2FsY3VsYXRpb25NZXRob2Q+SW50ZXJwb2xhdGlvbjwv + Q2FsY3VsYXRpb25NZXRob2Q+PFVzYWdlVHlwZT5Sb3V0ZTwvVXNhZ2VUeXBl + PjwvR2VvY29kZVBvaW50PjwvTG9jYXRpb24+PC9SZXNvdXJjZXM+PC9SZXNv + dXJjZVNldD48L1Jlc291cmNlU2V0cz48L1Jlc3BvbnNlPg== http_version: - recorded_at: Sat, 14 Dec 2013 05:40:44 GMT + recorded_at: Sun, 26 Jan 2014 05:51:03 GMT recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/bing_full_au.yml b/fixtures/vcr_cassettes/bing_full_au.yml index decbcb63..720ad592 100644 --- a/fixtures/vcr_cassettes/bing_full_au.yml +++ b/fixtures/vcr_cassettes/bing_full_au.yml @@ -2,13 +2,15 @@ http_interactions: - request: method: get - uri: http://dev.virtualearth.net/REST/v1/Locations/440%20King%20William%20Street,%20Adelaide,%20Australia?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml + uri: https://dev.virtualearth.net/REST/v1/Locations/440%20King%20William%20Street,%20Adelaide,%20Australia?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml body: encoding: US-ASCII string: '' headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - - ! '*/*' + - '*/*' User-Agent: - Ruby response: @@ -22,12 +24,14 @@ http_interactions: - chunked Content-Type: - application/xml; charset=utf-8 + Vary: + - Accept-Encoding Server: - Microsoft-IIS/8.0 X-Bm-Traceid: - - 2f00297848b04bf78f73efdb6c7b8c2b + - f80025caa8d14f9299362cdf94736e5a X-Bm-Srv: - - SINM001003, SINMSNVM000034, SINMSNVM000039 + - CO30276241, CO3SCH010265513, CO3SCH010265413 X-Ms-Bm-Ws-Info: - '0' X-Aspnet-Version: @@ -35,7 +39,7 @@ http_interactions: X-Powered-By: - ASP.NET Date: - - Thu, 26 Dec 2013 09:48:30 GMT + - Sun, 26 Jan 2014 05:51:03 GMT body: encoding: ASCII-8BIT string: !binary |- @@ -44,7 +48,7 @@ http_interactions: aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w - eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB + eXJpZ2h0IMKpIDIwMTQgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l @@ -54,38 +58,38 @@ http_interactions: ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0 YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh - bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD4yZjAwMjk3 - ODQ4YjA0YmY3OGY3M2VmZGI2YzdiOGMyYnxTSU5NMDAxMDAzfDAyLjAwLjE4 - My4yMzAwfFNJTk1TTlZNMDAwMDM0LCBTSU5NU05WTTAwMDAzOTwvVHJhY2VJ - ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+ - MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+ - NDAyLTQ0MCBLaW5nIFdpbGxpYW0gU3QsIEFkZWxhaWRlLCBTQSA1MDAwPC9O - YW1lPjxQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+PExv - bmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PC9Qb2ludD48Qm91bmRp - bmdCb3g+PFNvdXRoTGF0aXR1ZGU+LTM0LjkzODQ0NDcxNzU3MDY3NTwvU291 - dGhMYXRpdHVkZT48V2VzdExvbmdpdHVkZT4xMzguNTk0NTAxOTcwOTYwOTU8 - L1dlc3RMb25naXR1ZGU+PE5vcnRoTGF0aXR1ZGU+LTM0LjkzMDcxOTI4MjQy - OTMyMjwvTm9ydGhMYXRpdHVkZT48RWFzdExvbmdpdHVkZT4xMzguNjA3MDY2 - MDI5MDM5MDY8L0Vhc3RMb25naXR1ZGU+PC9Cb3VuZGluZ0JveD48RW50aXR5 - VHlwZT5BZGRyZXNzPC9FbnRpdHlUeXBlPjxBZGRyZXNzPjxBZGRyZXNzTGlu - ZT40MDItNDQwIEtpbmcgV2lsbGlhbSBTdDwvQWRkcmVzc0xpbmU+PEFkbWlu - RGlzdHJpY3Q+U0E8L0FkbWluRGlzdHJpY3Q+PENvdW50cnlSZWdpb24+QXVz - dHJhbGlhPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNzPjQwMi00 - NDAgS2luZyBXaWxsaWFtIFN0LCBBZGVsYWlkZSwgU0EgNTAwMDwvRm9ybWF0 - dGVkQWRkcmVzcz48TG9jYWxpdHk+QWRlbGFpZGU8L0xvY2FsaXR5PjxQb3N0 - YWxDb2RlPjUwMDA8L1Bvc3RhbENvZGU+PC9BZGRyZXNzPjxDb25maWRlbmNl - PkhpZ2g8L0NvbmZpZGVuY2U+PE1hdGNoQ29kZT5Hb29kPC9NYXRjaENvZGU+ - PEdlb2NvZGVQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+ - PExvbmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PENhbGN1bGF0aW9u - TWV0aG9kPlJvb2Z0b3A8L0NhbGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+ - RGlzcGxheTwvVXNhZ2VUeXBlPjwvR2VvY29kZVBvaW50PjxHZW9jb2RlUG9p - bnQ+PExhdGl0dWRlPi0zNC45MzQ1ODkzODU5ODYzMjg8L0xhdGl0dWRlPjxM - b25naXR1ZGU+MTM4LjYwMDUwOTY0MzU1NDY5PC9Mb25naXR1ZGU+PENhbGN1 - bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0NhbGN1bGF0aW9uTWV0aG9k - PjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjxVc2FnZVR5cGU+Um91 - dGU8L1VzYWdlVHlwZT48L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVz - b3VyY2VzPjwvUmVzb3VyY2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25z - ZT4= + bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD5mODAwMjVj + YWE4ZDE0ZjkyOTkzNjJjZGY5NDczNmU1YXxDTzMwMjc2MjQxfDAyLjAwLjEw + Ny4xNzAwfENPM1NDSDAxMDI2NTUxMywgQ08zU0NIMDEwMjY1NDEzPC9UcmFj + ZUlkPjxSZXNvdXJjZVNldHM+PFJlc291cmNlU2V0PjxFc3RpbWF0ZWRUb3Rh + bD4xPC9Fc3RpbWF0ZWRUb3RhbD48UmVzb3VyY2VzPjxMb2NhdGlvbj48TmFt + ZT40MDItNDQwIEtpbmcgV2lsbGlhbSBTdCwgQWRlbGFpZGUsIFNBIDUwMDA8 + L05hbWU+PFBvaW50PjxMYXRpdHVkZT4tMzQuOTM0NTgyPC9MYXRpdHVkZT48 + TG9uZ2l0dWRlPjEzOC42MDA3ODQ8L0xvbmdpdHVkZT48L1BvaW50PjxCb3Vu + ZGluZ0JveD48U291dGhMYXRpdHVkZT4tMzQuOTM4NDQ0NzE3NTcwNjc1PC9T + b3V0aExhdGl0dWRlPjxXZXN0TG9uZ2l0dWRlPjEzOC41OTQ1MDE5NzA5NjA5 + NTwvV2VzdExvbmdpdHVkZT48Tm9ydGhMYXRpdHVkZT4tMzQuOTMwNzE5Mjgy + NDI5MzIyPC9Ob3J0aExhdGl0dWRlPjxFYXN0TG9uZ2l0dWRlPjEzOC42MDcw + NjYwMjkwMzkwNjwvRWFzdExvbmdpdHVkZT48L0JvdW5kaW5nQm94PjxFbnRp + dHlUeXBlPkFkZHJlc3M8L0VudGl0eVR5cGU+PEFkZHJlc3M+PEFkZHJlc3NM + aW5lPjQwMi00NDAgS2luZyBXaWxsaWFtIFN0PC9BZGRyZXNzTGluZT48QWRt + aW5EaXN0cmljdD5TQTwvQWRtaW5EaXN0cmljdD48Q291bnRyeVJlZ2lvbj5B + dXN0cmFsaWE8L0NvdW50cnlSZWdpb24+PEZvcm1hdHRlZEFkZHJlc3M+NDAy + LTQ0MCBLaW5nIFdpbGxpYW0gU3QsIEFkZWxhaWRlLCBTQSA1MDAwPC9Gb3Jt + YXR0ZWRBZGRyZXNzPjxMb2NhbGl0eT5BZGVsYWlkZTwvTG9jYWxpdHk+PFBv + c3RhbENvZGU+NTAwMDwvUG9zdGFsQ29kZT48L0FkZHJlc3M+PENvbmZpZGVu + Y2U+SGlnaDwvQ29uZmlkZW5jZT48TWF0Y2hDb2RlPkdvb2Q8L01hdGNoQ29k + ZT48R2VvY29kZVBvaW50PjxMYXRpdHVkZT4tMzQuOTM0NTgyPC9MYXRpdHVk + ZT48TG9uZ2l0dWRlPjEzOC42MDA3ODQ8L0xvbmdpdHVkZT48Q2FsY3VsYXRp + b25NZXRob2Q+Um9vZnRvcDwvQ2FsY3VsYXRpb25NZXRob2Q+PFVzYWdlVHlw + ZT5EaXNwbGF5PC9Vc2FnZVR5cGU+PC9HZW9jb2RlUG9pbnQ+PEdlb2NvZGVQ + b2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4OTM4NTk4NjMyODwvTGF0aXR1ZGU+ + PExvbmdpdHVkZT4xMzguNjAwNTA5NjQzNTU0Njk8L0xvbmdpdHVkZT48Q2Fs + Y3VsYXRpb25NZXRob2Q+SW50ZXJwb2xhdGlvbjwvQ2FsY3VsYXRpb25NZXRo + b2Q+PFVzYWdlVHlwZT5EaXNwbGF5PC9Vc2FnZVR5cGU+PFVzYWdlVHlwZT5S + b3V0ZTwvVXNhZ2VUeXBlPjwvR2VvY29kZVBvaW50PjwvTG9jYXRpb24+PC9S + ZXNvdXJjZXM+PC9SZXNvdXJjZVNldD48L1Jlc291cmNlU2V0cz48L1Jlc3Bv + bnNlPg== http_version: - recorded_at: Thu, 26 Dec 2013 09:48:29 GMT + recorded_at: Sun, 26 Jan 2014 05:51:03 GMT recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/bing_full_de.yml b/fixtures/vcr_cassettes/bing_full_de.yml index 5797d9cd..56aeb412 100644 --- a/fixtures/vcr_cassettes/bing_full_de.yml +++ b/fixtures/vcr_cassettes/bing_full_de.yml @@ -2,13 +2,15 @@ http_interactions: - request: method: get - uri: http://dev.virtualearth.net/REST/v1/Locations/Platz%20der%20Republik%201,%2011011%20Berlin,%20Germany?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml + uri: https://dev.virtualearth.net/REST/v1/Locations/Platz%20der%20Republik%201,%2011011%20Berlin,%20Germany?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml body: encoding: US-ASCII string: '' headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - - ! '*/*' + - '*/*' User-Agent: - Ruby response: @@ -22,12 +24,14 @@ http_interactions: - chunked Content-Type: - application/xml; charset=utf-8 + Vary: + - Accept-Encoding Server: - Microsoft-IIS/8.0 X-Bm-Traceid: - - bae3195ab27846d899ef1bb63ddacdd9 + - 48690037e7b9411687ff1c02b73b0b3d X-Bm-Srv: - - SINM000009, SINMSNVM001117, SINMSNVM000134 + - CO30275938, CO3SCH010264708, CO3SCH010273829 X-Ms-Bm-Ws-Info: - '0' X-Aspnet-Version: @@ -35,7 +39,7 @@ http_interactions: X-Powered-By: - ASP.NET Date: - - Thu, 26 Dec 2013 09:52:37 GMT + - Sun, 26 Jan 2014 05:51:02 GMT body: encoding: ASCII-8BIT string: !binary |- @@ -44,7 +48,7 @@ http_interactions: aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w - eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB + eXJpZ2h0IMKpIDIwMTQgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l @@ -54,38 +58,38 @@ http_interactions: ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0 YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh - bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD5iYWUzMTk1 - YWIyNzg0NmQ4OTllZjFiYjYzZGRhY2RkOXxTSU5NMDAwMDA5fDAyLjAwLjE4 - My4yMzAwfFNJTk1TTlZNMDAxMTE3LCBTSU5NU05WTTAwMDEzNDwvVHJhY2VJ - ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+ - MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+ - UGxhdHogZGVyIFJlcHVibGlrIDEsIDEwNTU3IEJlcmxpbjwvTmFtZT48UG9p - bnQ+PExhdGl0dWRlPjUyLjUxODU5NjwvTGF0aXR1ZGU+PExvbmdpdHVkZT4x - My4zNzU1MDI8L0xvbmdpdHVkZT48L1BvaW50PjxCb3VuZGluZ0JveD48U291 - dGhMYXRpdHVkZT41Mi41MTQ3MzMyODI0MjkzMjY8L1NvdXRoTGF0aXR1ZGU+ - PFdlc3RMb25naXR1ZGU+MTMuMzY3MDM4ODg2OTI3OTc8L1dlc3RMb25naXR1 - ZGU+PE5vcnRoTGF0aXR1ZGU+NTIuNTIyNDU4NzE3NTcwNjc5PC9Ob3J0aExh - dGl0dWRlPjxFYXN0TG9uZ2l0dWRlPjEzLjM4Mzk2NTExMzA3MjAyODwvRWFz - dExvbmdpdHVkZT48L0JvdW5kaW5nQm94PjxFbnRpdHlUeXBlPkFkZHJlc3M8 - L0VudGl0eVR5cGU+PEFkZHJlc3M+PEFkZHJlc3NMaW5lPlBsYXR6IGRlciBS - ZXB1YmxpayAxPC9BZGRyZXNzTGluZT48QWRtaW5EaXN0cmljdD5CRTwvQWRt - aW5EaXN0cmljdD48QWRtaW5EaXN0cmljdDI+U3RhZHQgQmVybGluPC9BZG1p - bkRpc3RyaWN0Mj48Q291bnRyeVJlZ2lvbj5HZXJtYW55PC9Db3VudHJ5UmVn - aW9uPjxGb3JtYXR0ZWRBZGRyZXNzPlBsYXR6IGRlciBSZXB1YmxpayAxLCAx - MDU1NyBCZXJsaW48L0Zvcm1hdHRlZEFkZHJlc3M+PExvY2FsaXR5PkJlcmxp - bjwvTG9jYWxpdHk+PFBvc3RhbENvZGU+MTA1NTc8L1Bvc3RhbENvZGU+PC9B - ZGRyZXNzPjxDb25maWRlbmNlPkhpZ2g8L0NvbmZpZGVuY2U+PE1hdGNoQ29k - ZT5Hb29kPC9NYXRjaENvZGU+PEdlb2NvZGVQb2ludD48TGF0aXR1ZGU+NTIu - NTE4NTk2PC9MYXRpdHVkZT48TG9uZ2l0dWRlPjEzLjM3NTUwMjwvTG9uZ2l0 - dWRlPjxDYWxjdWxhdGlvbk1ldGhvZD5Sb29mdG9wPC9DYWxjdWxhdGlvbk1l - dGhvZD48VXNhZ2VUeXBlPkRpc3BsYXk8L1VzYWdlVHlwZT48L0dlb2NvZGVQ - b2ludD48R2VvY29kZVBvaW50PjxMYXRpdHVkZT41Mi41MTg1OTg8L0xhdGl0 - dWRlPjxMb25naXR1ZGU+MTMuMzc0OTQ0MDAwMDAwMDAxPC9Mb25naXR1ZGU+ - PENhbGN1bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0NhbGN1bGF0aW9u - TWV0aG9kPjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjxVc2FnZVR5 - cGU+Um91dGU8L1VzYWdlVHlwZT48L0dlb2NvZGVQb2ludD48L0xvY2F0aW9u - PjwvUmVzb3VyY2VzPjwvUmVzb3VyY2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9S - ZXNwb25zZT4= + bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD40ODY5MDAz + N2U3Yjk0MTE2ODdmZjFjMDJiNzNiMGIzZHxDTzMwMjc1OTM4fDAyLjAwLjEw + Ny4xNzAwfENPM1NDSDAxMDI2NDcwOCwgQ08zU0NIMDEwMjczODI5PC9UcmFj + ZUlkPjxSZXNvdXJjZVNldHM+PFJlc291cmNlU2V0PjxFc3RpbWF0ZWRUb3Rh + bD4xPC9Fc3RpbWF0ZWRUb3RhbD48UmVzb3VyY2VzPjxMb2NhdGlvbj48TmFt + ZT5QbGF0eiBkZXIgUmVwdWJsaWsgMSwgMTA1NTcgQmVybGluPC9OYW1lPjxQ + b2ludD48TGF0aXR1ZGU+NTIuNTE4NTk2PC9MYXRpdHVkZT48TG9uZ2l0dWRl + PjEzLjM3NTUwMjwvTG9uZ2l0dWRlPjwvUG9pbnQ+PEJvdW5kaW5nQm94PjxT + b3V0aExhdGl0dWRlPjUyLjUxNDczMzI4MjQyOTMyNjwvU291dGhMYXRpdHVk + ZT48V2VzdExvbmdpdHVkZT4xMy4zNjcwMzg4ODY5Mjc5NzwvV2VzdExvbmdp + dHVkZT48Tm9ydGhMYXRpdHVkZT41Mi41MjI0NTg3MTc1NzA2Nzk8L05vcnRo + TGF0aXR1ZGU+PEVhc3RMb25naXR1ZGU+MTMuMzgzOTY1MTEzMDcyMDI4PC9F + YXN0TG9uZ2l0dWRlPjwvQm91bmRpbmdCb3g+PEVudGl0eVR5cGU+QWRkcmVz + czwvRW50aXR5VHlwZT48QWRkcmVzcz48QWRkcmVzc0xpbmU+UGxhdHogZGVy + IFJlcHVibGlrIDE8L0FkZHJlc3NMaW5lPjxBZG1pbkRpc3RyaWN0PkJFPC9B + ZG1pbkRpc3RyaWN0PjxBZG1pbkRpc3RyaWN0Mj5TdGFkdCBCZXJsaW48L0Fk + bWluRGlzdHJpY3QyPjxDb3VudHJ5UmVnaW9uPkdlcm1hbnk8L0NvdW50cnlS + ZWdpb24+PEZvcm1hdHRlZEFkZHJlc3M+UGxhdHogZGVyIFJlcHVibGlrIDEs + IDEwNTU3IEJlcmxpbjwvRm9ybWF0dGVkQWRkcmVzcz48TG9jYWxpdHk+QmVy + bGluPC9Mb2NhbGl0eT48UG9zdGFsQ29kZT4xMDU1NzwvUG9zdGFsQ29kZT48 + L0FkZHJlc3M+PENvbmZpZGVuY2U+SGlnaDwvQ29uZmlkZW5jZT48TWF0Y2hD + b2RlPkdvb2Q8L01hdGNoQ29kZT48R2VvY29kZVBvaW50PjxMYXRpdHVkZT41 + Mi41MTg1OTY8L0xhdGl0dWRlPjxMb25naXR1ZGU+MTMuMzc1NTAyPC9Mb25n + aXR1ZGU+PENhbGN1bGF0aW9uTWV0aG9kPlJvb2Z0b3A8L0NhbGN1bGF0aW9u + TWV0aG9kPjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjwvR2VvY29k + ZVBvaW50PjxHZW9jb2RlUG9pbnQ+PExhdGl0dWRlPjUyLjUxODU5ODwvTGF0 + aXR1ZGU+PExvbmdpdHVkZT4xMy4zNzQ5NDQwMDAwMDAwMDE8L0xvbmdpdHVk + ZT48Q2FsY3VsYXRpb25NZXRob2Q+SW50ZXJwb2xhdGlvbjwvQ2FsY3VsYXRp + b25NZXRob2Q+PFVzYWdlVHlwZT5EaXNwbGF5PC9Vc2FnZVR5cGU+PFVzYWdl + VHlwZT5Sb3V0ZTwvVXNhZ2VUeXBlPjwvR2VvY29kZVBvaW50PjwvTG9jYXRp + b24+PC9SZXNvdXJjZXM+PC9SZXNvdXJjZVNldD48L1Jlc291cmNlU2V0cz48 + L1Jlc3BvbnNlPg== http_version: - recorded_at: Thu, 26 Dec 2013 09:52:37 GMT + recorded_at: Sun, 26 Jan 2014 05:51:03 GMT recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/fcc_reverse_geocode.yml b/fixtures/vcr_cassettes/fcc_reverse_geocode.yml index a684752f..cdb4fb21 100644 --- a/fixtures/vcr_cassettes/fcc_reverse_geocode.yml +++ b/fixtures/vcr_cassettes/fcc_reverse_geocode.yml @@ -2,13 +2,15 @@ http_interactions: - request: method: get - uri: http://data.fcc.gov/api/block/find?format=json&latitude=34.05&longitude=-118.25 + uri: https://data.fcc.gov/api/block/find?format=json&latitude=34.05&longitude=-118.25 body: encoding: US-ASCII string: '' headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - - ! '*/*' + - '*/*' User-Agent: - Ruby response: @@ -19,7 +21,7 @@ http_interactions: Server: - Sun-Java-System-Web-Server/7.0 Date: - - Fri, 13 Dec 2013 13:40:26 GMT + - Sun, 26 Jan 2014 05:57:32 GMT Content-Type: - application/json Via: @@ -29,9 +31,9 @@ http_interactions: Transfer-Encoding: - chunked body: - encoding: US-ASCII - string: ! '{"Block":{"FIPS":"060372073012003"},"County":{"FIPS":"06037","name":"Los + encoding: UTF-8 + string: '{"Block":{"FIPS":"060372073012003"},"County":{"FIPS":"06037","name":"Los Angeles"},"State":{"FIPS":"06","code":"CA","name":"California"},"status":"OK","executionTime":"11"}' http_version: - recorded_at: Fri, 13 Dec 2013 13:46:20 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:57:38 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_city.yml b/fixtures/vcr_cassettes/google_city.yml index 2861f5b0..0c90916a 100644 --- a/fixtures/vcr_cassettes/google_city.yml +++ b/fixtures/vcr_cassettes/google_city.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=San%20Francisco,%20CA&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=San%20Francisco,%20CA&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:52 GMT + - Sun, 26 Jan 2014 05:46:39 GMT Expires: - - Thu, 14 Nov 2013 14:55:52 GMT + - Mon, 27 Jan 2014 05:46:39 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -71,7 +73,7 @@ http_interactions: "bounds" : { "northeast" : { "lat" : 37.9297707, - "lng" : -122.3279149 + "lng" : -122.3279148 }, "southwest" : { "lat" : 37.6933354, @@ -100,5 +102,5 @@ http_interactions: "status" : "OK" } http_version: - recorded_at: Wed, 13 Nov 2013 14:55:50 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:39 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_country_code_biased_result.yml b/fixtures/vcr_cassettes/google_country_code_biased_result.yml index 077486f0..bc27f439 100644 --- a/fixtures/vcr_cassettes/google_country_code_biased_result.yml +++ b/fixtures/vcr_cassettes/google_country_code_biased_result.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=Syracuse®ion=it&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=Syracuse®ion=it&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:51 GMT + - Sun, 26 Jan 2014 05:46:38 GMT Expires: - - Thu, 14 Nov 2013 14:55:51 GMT + - Mon, 27 Jan 2014 05:46:38 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -70,8 +72,8 @@ http_interactions: "geometry" : { "bounds" : { "northeast" : { - "lat" : 43.0861018, - "lng" : -76.07408409999999 + "lat" : 43.0861019, + "lng" : -76.074084 }, "southwest" : { "lat" : 42.984366, @@ -85,8 +87,8 @@ http_interactions: "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 43.0861018, - "lng" : -76.07408409999999 + "lat" : 43.0861019, + "lng" : -76.074084 }, "southwest" : { "lat" : 42.984366, @@ -186,12 +188,12 @@ http_interactions: "geometry" : { "bounds" : { "northeast" : { - "lat" : 41.1110471, + "lat" : 41.111047, "lng" : -112.035575 }, "southwest" : { "lat" : 41.0556259, - "lng" : -112.1171349 + "lng" : -112.117135 } }, "location" : { @@ -201,12 +203,12 @@ http_interactions: "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 41.1110471, + "lat" : 41.111047, "lng" : -112.035575 }, "southwest" : { "lat" : 41.0556259, - "lng" : -112.1171349 + "lng" : -112.117135 } } }, @@ -244,7 +246,7 @@ http_interactions: "geometry" : { "bounds" : { "northeast" : { - "lat" : 37.990495, + "lat" : 37.9904949, "lng" : -101.7367079 }, "southwest" : { @@ -259,7 +261,7 @@ http_interactions: "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 37.990495, + "lat" : 37.9904949, "lng" : -101.7367079 }, "southwest" : { @@ -307,8 +309,8 @@ http_interactions: "geometry" : { "bounds" : { "northeast" : { - "lat" : 40.6728649, - "lng" : -96.17200389999999 + "lat" : 40.672865, + "lng" : -96.172004 }, "southwest" : { "lat" : 40.6512059, @@ -322,8 +324,8 @@ http_interactions: "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 40.6728649, - "lng" : -96.17200389999999 + "lat" : 40.672865, + "lng" : -96.172004 }, "southwest" : { "lat" : 40.6512059, @@ -365,11 +367,11 @@ http_interactions: "geometry" : { "bounds" : { "northeast" : { - "lat" : 37.1056629, - "lng" : 15.3012622 + "lat" : 37.105663, + "lng" : 15.3012623 }, "southwest" : { - "lat" : 37.0526518, + "lat" : 37.0526519, "lng" : 15.2405306 } }, @@ -380,11 +382,11 @@ http_interactions: "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 37.1056629, - "lng" : 15.3012622 + "lat" : 37.105663, + "lng" : 15.3012623 }, "southwest" : { - "lat" : 37.0526518, + "lat" : 37.0526519, "lng" : 15.2405306 } } @@ -395,5 +397,5 @@ http_interactions: "status" : "OK" } http_version: - recorded_at: Wed, 13 Nov 2013 14:55:49 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:38 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_full.yml b/fixtures/vcr_cassettes/google_full.yml index 508c83ec..4fac48a1 100644 --- a/fixtures/vcr_cassettes/google_full.yml +++ b/fixtures/vcr_cassettes/google_full.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=100%20Spear%20St%20Apt.%205,%20San%20Francisco,%20CA,%2094105,%20US&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=100%20Spear%20St%20Apt.%205,%20San%20Francisco,%20CA,%2094105,%20US&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:52 GMT + - Sun, 26 Jan 2014 05:46:39 GMT Expires: - - Thu, 14 Nov 2013 14:55:52 GMT + - Mon, 27 Jan 2014 05:46:39 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -60,11 +62,6 @@ http_interactions: "short_name" : "Spear St", "types" : [ "route" ] }, - { - "long_name" : "South Beach", - "short_name" : "South Beach", - "types" : [ "neighborhood", "political" ] - }, { "long_name" : "San Francisco", "short_name" : "SF", @@ -94,18 +91,18 @@ http_interactions: "formatted_address" : "100 Spear Street #5, San Francisco, CA 94105, USA", "geometry" : { "location" : { - "lat" : 37.792524, - "lng" : -122.3940868 + "lat" : 37.7921384, + "lng" : -122.3938563 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { - "lat" : 37.7938729802915, - "lng" : -122.3927378197085 + "lat" : 37.7934873802915, + "lng" : -122.3925073197085 }, "southwest" : { - "lat" : 37.7911750197085, - "lng" : -122.3954357802915 + "lat" : 37.7907894197085, + "lng" : -122.3952052802915 } } }, @@ -116,5 +113,5 @@ http_interactions: "status" : "OK" } http_version: - recorded_at: Wed, 13 Nov 2013 14:55:50 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:39 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_full_short.yml b/fixtures/vcr_cassettes/google_full_short.yml index 2861f5b0..3098d4de 100644 --- a/fixtures/vcr_cassettes/google_full_short.yml +++ b/fixtures/vcr_cassettes/google_full_short.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=San%20Francisco,%20CA&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=San%20Francisco,%20CA&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:52 GMT + - Sun, 26 Jan 2014 05:47:13 GMT Expires: - - Thu, 14 Nov 2013 14:55:52 GMT + - Mon, 27 Jan 2014 05:47:13 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -71,7 +73,7 @@ http_interactions: "bounds" : { "northeast" : { "lat" : 37.9297707, - "lng" : -122.3279149 + "lng" : -122.3279148 }, "southwest" : { "lat" : 37.6933354, @@ -100,5 +102,5 @@ http_interactions: "status" : "OK" } http_version: - recorded_at: Wed, 13 Nov 2013 14:55:50 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:47:13 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_language_response_fr.yml b/fixtures/vcr_cassettes/google_language_response_fr.yml index 7a8d4666..340a3e0d 100644 --- a/fixtures/vcr_cassettes/google_language_response_fr.yml +++ b/fixtures/vcr_cassettes/google_language_response_fr.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=Hanoi&language=FR&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=Hanoi&language=FR&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:53 GMT + - Sun, 26 Jan 2014 05:46:39 GMT Expires: - - Thu, 14 Nov 2013 14:55:53 GMT + - Mon, 27 Jan 2014 05:46:39 GMT Cache-Control: - public, max-age=86400 Access-Control-Allow-Origin: @@ -34,6 +34,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -60,23 +62,23 @@ http_interactions: w68sIEhvYW4gS2llbSBEaXN0cmljdCwgSGFub8OvLCBWaWV0bmFtIiwKICAg ICAgICAgImdlb21ldHJ5IiA6IHsKICAgICAgICAgICAgImJvdW5kcyIgOiB7 CiAgICAgICAgICAgICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAg - ICAgICAibGF0IiA6IDIxLjA1MDI5NDIsCiAgICAgICAgICAgICAgICAgICJs - bmciIDogMTA1Ljg3NjQ0NTkKICAgICAgICAgICAgICAgfSwKICAgICAgICAg + ICAgICAibGF0IiA6IDIxLjA1MDI5NDMsCiAgICAgICAgICAgICAgICAgICJs + bmciIDogMTA1Ljg3NjQ0NTgKICAgICAgICAgICAgICAgfSwKICAgICAgICAg ICAgICAgInNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQi - IDogMjAuOTk1MDk5MSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAxMDUu - Nzk3NDgxNQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAg - ICAgICAgICJsb2NhdGlvbiIgOiB7CiAgICAgICAgICAgICAgICJsYXQiIDog - MjEuMDMzMzMzMywKICAgICAgICAgICAgICAgImxuZyIgOiAxMDUuODUKICAg - ICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9uX3R5cGUiIDogIkFQ - UFJPWElNQVRFIiwKICAgICAgICAgICAgInZpZXdwb3J0IiA6IHsKICAgICAg - ICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJs - YXQiIDogMjEuMDUwMjk0MiwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAx - MDUuODc2NDQ1OQogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAi - c291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiAyMC45 - OTUwOTkxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IDEwNS43OTc0ODE1 - CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LAog - ICAgICAgICAidHlwZXMiIDogWyAibG9jYWxpdHkiLCAicG9saXRpY2FsIiBd - CiAgICAgIH0KICAgXSwKICAgInN0YXR1cyIgOiAiT0siCn0K + IDogMjAuOTk1MDk5LAogICAgICAgICAgICAgICAgICAibG5nIiA6IDEwNS43 + OTc0ODE1CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAg + ICAgICAgImxvY2F0aW9uIiA6IHsKICAgICAgICAgICAgICAgImxhdCIgOiAy + MS4wMzMzMzMzLAogICAgICAgICAgICAgICAibG5nIiA6IDEwNS44NQogICAg + ICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAiQVBQ + Uk9YSU1BVEUiLAogICAgICAgICAgICAidmlld3BvcnQiIDogewogICAgICAg + ICAgICAgICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxh + dCIgOiAyMS4wNTAyOTQzLAogICAgICAgICAgICAgICAgICAibG5nIiA6IDEw + NS44NzY0NDU4CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJz + b3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDIwLjk5 + NTA5OSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAxMDUuNzk3NDgxNQog + ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAg + ICAgICAgInR5cGVzIiA6IFsgImxvY2FsaXR5IiwgInBvbGl0aWNhbCIgXQog + ICAgICB9CiAgIF0sCiAgICJzdGF0dXMiIDogIk9LIgp9Cg== http_version: - recorded_at: Wed, 13 Nov 2013 14:55:51 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:39 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_multi.yml b/fixtures/vcr_cassettes/google_multi.yml index 2d784ef2..2bae34d9 100644 --- a/fixtures/vcr_cassettes/google_multi.yml +++ b/fixtures/vcr_cassettes/google_multi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?address=via%20Sandro%20Pertini%208,%20Ossona,%20MI&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?address=via%20Sandro%20Pertini%208,%20Ossona,%20MI&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:53 GMT + - Sun, 26 Jan 2014 05:46:39 GMT Expires: - - Thu, 14 Nov 2013 14:55:53 GMT + - Mon, 27 Jan 2014 05:46:39 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -387,5 +389,5 @@ http_interactions: "status" : "OK" } http_version: - recorded_at: Wed, 13 Nov 2013 14:55:51 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:39 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_reverse_madrid.yml b/fixtures/vcr_cassettes/google_reverse_madrid.yml index 61987f8c..60b89842 100644 --- a/fixtures/vcr_cassettes/google_reverse_madrid.yml +++ b/fixtures/vcr_cassettes/google_reverse_madrid.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?latlng=40.4167413,-3.7032498&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?latlng=40.4167413,-3.7032498&sensor=false body: encoding: US-ASCII string: '' @@ -21,9 +21,9 @@ http_interactions: Content-Type: - application/json; charset=UTF-8 Date: - - Wed, 13 Nov 2013 14:55:54 GMT + - Sun, 26 Jan 2014 05:46:39 GMT Expires: - - Thu, 14 Nov 2013 14:55:54 GMT + - Mon, 27 Jan 2014 05:46:39 GMT Cache-Control: - public, max-age=86400 Vary: @@ -36,6 +36,8 @@ http_interactions: - 1; mode=block X-Frame-Options: - SAMEORIGIN + Alternate-Protocol: + - 443:quic Transfer-Encoding: - chunked body: @@ -148,186 +150,30 @@ http_interactions: YXR0ZWRfYWRkcmVzcyIgOiAiU29sLCBNYWRyaWQsIFNwYWluIiwKICAgICAg ICAgImdlb21ldHJ5IiA6IHsKICAgICAgICAgICAgImJvdW5kcyIgOiB7CiAg ICAgICAgICAgICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAgICAg - ICAibGF0IiA6IDQwLjQyMDMyNSwKICAgICAgICAgICAgICAgICAgImxuZyIg - OiAtMy42OTkzMDcKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg - InNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAu - NDEzNTQyMSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MDg2OQog - ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJs - b2NhdGlvbiIgOiB7CiAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDE2NjYz - NSwKICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MDQxNjg3CiAgICAgICAg - ICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbl90eXBlIiA6ICJBUFBST1hJ - TUFURSIsCiAgICAgICAgICAgICJ2aWV3cG9ydCIgOiB7CiAgICAgICAgICAg - ICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6 - IDQwLjQyMDMyNSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy42OTkz - MDcKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2Vz - dCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDEzNTQyMSwK - ICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MDg2OQogICAgICAgICAg - ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgInR5 - cGVzIiA6IFsgIm5laWdoYm9yaG9vZCIsICJwb2xpdGljYWwiIF0KICAgICAg - fSwKICAgICAgewogICAgICAgICAiYWRkcmVzc19jb21wb25lbnRzIiA6IFsK - ICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICIy - ODAxMyIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICIyODAxMyIs - CiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJwb3N0YWxfY29kZSIgXQog - ICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJs - b25nX25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9u - YW1lIiA6ICJNYWRyaWQiLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAi - bG9jYWxpdHkiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0sCiAgICAg - ICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiTWFkcmlk - IiwKICAgICAgICAgICAgICAgInNob3J0X25hbWUiIDogIk0iLAogICAgICAg - ICAgICAgICAidHlwZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZl - bF8yIiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAg - ICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIkNvbW11bml0eSBv - ZiBNYWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiQ29t - bXVuaXR5IG9mIE1hZHJpZCIsCiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBb - ICJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLCAicG9saXRpY2FsIiBd - CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg - ImxvbmdfbmFtZSIgOiAiU3BhaW4iLAogICAgICAgICAgICAgICAic2hvcnRf - bmFtZSIgOiAiRVMiLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAiY291 - bnRyeSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfQogICAgICAgICBd - LAogICAgICAgICAiZm9ybWF0dGVkX2FkZHJlc3MiIDogIjI4MDEzIE1hZHJp - ZCwgU3BhaW4iLAogICAgICAgICAiZ2VvbWV0cnkiIDogewogICAgICAgICAg - ICAiYm91bmRzIiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7 - CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDI0NDk2MSwKICAgICAg - ICAgICAgICAgICAgImxuZyIgOiAtMy42OTY5NjQzCiAgICAgICAgICAgICAg - IH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewogICAgICAgICAg - ICAgICAgICAibGF0IiA6IDQwLjQxNDkzNDQsCiAgICAgICAgICAgICAgICAg - ICJsbmciIDogLTMuNzIyNzcwMwogICAgICAgICAgICAgICB9CiAgICAgICAg - ICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbiIgOiB7CiAgICAgICAgICAg - ICAgICJsYXQiIDogNDAuNDE4OTY0NSwKICAgICAgICAgICAgICAgImxuZyIg - OiAtMy43MTE3ODA2CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2Nh - dGlvbl90eXBlIiA6ICJBUFBST1hJTUFURSIsCiAgICAgICAgICAgICJ2aWV3 - cG9ydCIgOiB7CiAgICAgICAgICAgICAgICJub3J0aGVhc3QiIDogewogICAg - ICAgICAgICAgICAgICAibGF0IiA6IDQwLjQyNDQ5NjEsCiAgICAgICAgICAg - ICAgICAgICJsbmciIDogLTMuNjk2OTY0MwogICAgICAgICAgICAgICB9LAog - ICAgICAgICAgICAgICAic291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAg - ICAgImxhdCIgOiA0MC40MTQ5MzQ0LAogICAgICAgICAgICAgICAgICAibG5n - IiA6IC0zLjcyMjc3MDMKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 - CiAgICAgICAgIH0sCiAgICAgICAgICJ0eXBlcyIgOiBbICJwb3N0YWxfY29k - ZSIgXQogICAgICB9LAogICAgICB7CiAgICAgICAgICJhZGRyZXNzX2NvbXBv - bmVudHMiIDogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJsb25n - X25hbWUiIDogIkNlbnRybyIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1l - IiA6ICJDZW50cm8iLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAic3Vi - bG9jYWxpdHkiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0sCiAgICAg - ICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiTWFkcmlk - IiwKICAgICAgICAgICAgICAgInNob3J0X25hbWUiIDogIk1hZHJpZCIsCiAg - ICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJsb2NhbGl0eSIsICJwb2xpdGlj - YWwiIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAg - ICAgICAibG9uZ19uYW1lIiA6ICJNYWRyaWQiLAogICAgICAgICAgICAgICAi - c2hvcnRfbmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAgICAgICAgInR5cGVz - IiA6IFsgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAg - ICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIk1hZHJpZCIsCiAg - ICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJNIiwKICAgICAgICAgICAg - ICAgInR5cGVzIiA6IFsgImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMiIs - ICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewog - ICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJDb21tdW5pdHkgb2YgTWFk - cmlkIiwKICAgICAgICAgICAgICAgInNob3J0X25hbWUiIDogIkNvbW11bml0 - eSBvZiBNYWRyaWQiLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAiYWRt - aW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xIiwgInBvbGl0aWNhbCIgXQogICAg - ICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJsb25n - X25hbWUiIDogIlNwYWluIiwKICAgICAgICAgICAgICAgInNob3J0X25hbWUi - IDogIkVTIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgImNvdW50cnki - LCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAg - ICAgICAgImZvcm1hdHRlZF9hZGRyZXNzIiA6ICJDZW50cm8sIE1hZHJpZCwg - U3BhaW4iLAogICAgICAgICAiZ2VvbWV0cnkiIDogewogICAgICAgICAgICAi - Ym91bmRzIiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAg - ICAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDMwNjE2MSwKICAgICAgICAg - ICAgICAgICAgImxuZyIgOiAtMy42OTAyODkKICAgICAgICAgICAgICAgfSwK - ICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAg - ICAgICJsYXQiIDogNDAuNDA1MDQxMSwKICAgICAgICAgICAgICAgICAgImxu - ZyIgOiAtMy43MjI4NzgxCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg - fSwKICAgICAgICAgICAgImxvY2F0aW9uIiA6IHsKICAgICAgICAgICAgICAg - ImxhdCIgOiA0MC40MTE1MTY1LAogICAgICAgICAgICAgICAibG5nIiA6IC0z - LjcwNzY0NDUKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9u - X3R5cGUiIDogIkFQUFJPWElNQVRFIiwKICAgICAgICAgICAgInZpZXdwb3J0 - IiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAg - ICAgICAgICAgICJsYXQiIDogNDAuNDMwNjE2MSwKICAgICAgICAgICAgICAg - ICAgImxuZyIgOiAtMy42OTAyODkKICAgICAgICAgICAgICAgfSwKICAgICAg - ICAgICAgICAgInNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJs - YXQiIDogNDAuNDA1MDQxMSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAt - My43MjI4NzgxCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg - ICAgICB9LAogICAgICAgICAidHlwZXMiIDogWyAic3VibG9jYWxpdHkiLCAi - cG9saXRpY2FsIiBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAgImFkZHJl - c3NfY29tcG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAg - ICAgImxvbmdfbmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAgICAgICAgInNo - b3J0X25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJ0eXBlcyIg - OiBbICJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwK - ICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJN - YWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiTWFkcmlk - IiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgInBvbGl0aWNhbCIgXQog - ICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJs - b25nX25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9u - YW1lIiA6ICJNIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgImFkbWlu - aXN0cmF0aXZlX2FyZWFfbGV2ZWxfMiIsICJwb2xpdGljYWwiIF0KICAgICAg - ICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19u - YW1lIiA6ICJDb21tdW5pdHkgb2YgTWFkcmlkIiwKICAgICAgICAgICAgICAg - InNob3J0X25hbWUiIDogIkNvbW11bml0eSBvZiBNYWRyaWQiLAogICAgICAg - ICAgICAgICAidHlwZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZl - bF8xIiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAg - ICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIlNwYWluIiwKICAg - ICAgICAgICAgICAgInNob3J0X25hbWUiIDogIkVTIiwKICAgICAgICAgICAg - ICAgInR5cGVzIiA6IFsgImNvdW50cnkiLCAicG9saXRpY2FsIiBdCiAgICAg - ICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImZvcm1hdHRlZF9hZGRy - ZXNzIiA6ICJNYWRyaWQsIFNwYWluIiwKICAgICAgICAgImdlb21ldHJ5IiA6 - IHsKICAgICAgICAgICAgImJvdW5kcyIgOiB7CiAgICAgICAgICAgICAgICJu - b3J0aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQwLjU2 - MzU5MDMsCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuNTI0OTExNQog - ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAic291dGh3ZXN0IiA6 - IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC4zMTIwNjM5LAogICAg - ICAgICAgICAgICAgICAibG5nIiA6IC0zLjgzNDE2MTgKICAgICAgICAgICAg - ICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb24iIDog - ewogICAgICAgICAgICAgICAibGF0IiA6IDQwLjQxNjc3NTQsCiAgICAgICAg - ICAgICAgICJsbmciIDogLTMuNzAzNzkwMgogICAgICAgICAgICB9LAogICAg - ICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAiQVBQUk9YSU1BVEUiLAogICAg - ICAgICAgICAidmlld3BvcnQiIDogewogICAgICAgICAgICAgICAibm9ydGhl - YXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC41NjM1OTAz - LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjUyNDkxMTUKICAgICAg - ICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7CiAg - ICAgICAgICAgICAgICAgICJsYXQiIDogNDAuMzEyMDYzOSwKICAgICAgICAg - ICAgICAgICAgImxuZyIgOiAtMy44MzQxNjE4CiAgICAgICAgICAgICAgIH0K - ICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAidHlwZXMiIDog - WyAibG9jYWxpdHkiLCAicG9saXRpY2FsIiBdCiAgICAgIH0sCiAgICAgIHsK - ICAgICAgICAgImFkZHJlc3NfY29tcG9uZW50cyIgOiBbCiAgICAgICAgICAg + ICAibGF0IiA6IDQwLjQyMDMyNDksCiAgICAgICAgICAgICAgICAgICJsbmci + IDogLTMuNjk5MzA3CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg + ICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQw + LjQxMzU0MjAwMDAwMDAxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0z + LjcwODY5MDEKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAg + ICAgICAgICAibG9jYXRpb24iIDogewogICAgICAgICAgICAgICAibGF0IiA6 + IDQwLjQxNjY2MzUsCiAgICAgICAgICAgICAgICJsbmciIDogLTMuNzA0MTY4 + NwogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb25fdHlwZSIg + OiAiQVBQUk9YSU1BVEUiLAogICAgICAgICAgICAidmlld3BvcnQiIDogewog + ICAgICAgICAgICAgICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAg + ICAgImxhdCIgOiA0MC40MjAzMjQ5LAogICAgICAgICAgICAgICAgICAibG5n + IiA6IC0zLjY5OTMwNwogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg + ICAic291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0 + MC40MTM1NDIwMDAwMDAwMSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAt + My43MDg2OTAxCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg + ICAgICB9LAogICAgICAgICAidHlwZXMiIDogWyAibmVpZ2hib3Job29kIiwg + InBvbGl0aWNhbCIgXQogICAgICB9LAogICAgICB7CiAgICAgICAgICJhZGRy + ZXNzX2NvbXBvbmVudHMiIDogWwogICAgICAgICAgICB7CiAgICAgICAgICAg + ICAgICJsb25nX25hbWUiIDogIjI4MDEzIiwKICAgICAgICAgICAgICAgInNo + b3J0X25hbWUiIDogIjI4MDEzIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6 + IFsgInBvc3RhbF9jb2RlIiBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiTWFkcmlkIiwKICAg ICAgICAgICAgICAgInNob3J0X25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAg - ICAgICAgICJ0eXBlcyIgOiBbICJwb2xpdGljYWwiIF0KICAgICAgICAgICAg - fSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6 - ICJNYWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiTSIs - CiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJhZG1pbmlzdHJhdGl2ZV9h - cmVhX2xldmVsXzIiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0sCiAg - ICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiQ29t - bXVuaXR5IG9mIE1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1l - IiA6ICJDb21tdW5pdHkgb2YgTWFkcmlkIiwKICAgICAgICAgICAgICAgInR5 - cGVzIiA6IFsgImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMSIsICJwb2xp - dGljYWwiIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAg - ICAgICAgICAibG9uZ19uYW1lIiA6ICJTcGFpbiIsCiAgICAgICAgICAgICAg - ICJzaG9ydF9uYW1lIiA6ICJFUyIsCiAgICAgICAgICAgICAgICJ0eXBlcyIg - OiBbICJjb3VudHJ5IiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9CiAg - ICAgICAgIF0sCiAgICAgICAgICJmb3JtYXR0ZWRfYWRkcmVzcyIgOiAiTWFk - cmlkLCBTcGFpbiIsCiAgICAgICAgICJnZW9tZXRyeSIgOiB7CiAgICAgICAg - ICAgICJib3VuZHMiIDogewogICAgICAgICAgICAgICAibm9ydGhlYXN0IiA6 - IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC42NDMzMzI2OTk5OTk5 - OSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy41MTgyMzQ5CiAgICAg - ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewog - ICAgICAgICAgICAgICAgICAibGF0IiA6IDQwLjMxMjA2MzksCiAgICAgICAg - ICAgICAgICAgICJsbmciIDogLTMuODg4OTU2NwogICAgICAgICAgICAgICB9 - CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbiIgOiB7CiAg - ICAgICAgICAgICAgICJsYXQiIDogNDAuNDUzNTg3NSwKICAgICAgICAgICAg - ICAgImxuZyIgOiAtMy43MDI5MDAyCiAgICAgICAgICAgIH0sCiAgICAgICAg - ICAgICJsb2NhdGlvbl90eXBlIiA6ICJBUFBST1hJTUFURSIsCiAgICAgICAg - ICAgICJ2aWV3cG9ydCIgOiB7CiAgICAgICAgICAgICAgICJub3J0aGVhc3Qi - IDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQwLjY0MzMzMjY5OTk5 - OTk5LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjUxODIzNDkKICAg - ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7 - CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuMzEyMDYzOSwKICAgICAg - ICAgICAgICAgICAgImxuZyIgOiAtMy44ODg5NTY3CiAgICAgICAgICAgICAg - IH0KICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAidHlwZXMi - IDogWyAicG9saXRpY2FsIiBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAg - ImFkZHJlc3NfY29tcG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAg - ICAgICAgICAgImxvbmdfbmFtZSIgOiAiw4FyZWEgTWV0cm9wb2xpdGFsaXRh - bmEgeSBDb3JyZWRvciBkZWwgSGVuYXJlcyIsCiAgICAgICAgICAgICAgICJz - aG9ydF9uYW1lIiA6ICLDgXJlYSBNZXRyb3BvbGl0YWxpdGFuYSB5IENvcnJl - ZG9yIGRlbCBIZW5hcmVzIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsg - ImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMyIsICJwb2xpdGljYWwiIF0K + ICAgICAgICJ0eXBlcyIgOiBbICJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0K ICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAi bG9uZ19uYW1lIiA6ICJNYWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRf bmFtZSIgOiAiTSIsCiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJhZG1p @@ -341,28 +187,37 @@ http_interactions: ICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJFUyIsCiAgICAgICAgICAg ICAgICJ0eXBlcyIgOiBbICJjb3VudHJ5IiwgInBvbGl0aWNhbCIgXQogICAg ICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJmb3JtYXR0ZWRfYWRk - cmVzcyIgOiAiw4FyZWEgTWV0cm9wb2xpdGFsaXRhbmEgeSBDb3JyZWRvciBk - ZWwgSGVuYXJlcywgTWFkcmlkLCBTcGFpbiIsCiAgICAgICAgICJnZW9tZXRy - eSIgOiB7CiAgICAgICAgICAgICJib3VuZHMiIDogewogICAgICAgICAgICAg - ICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0 - MC42NDUzODc1LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjI4Mzg5 - NzgKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2Vz - dCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuMTk4OTI2OSwK - ICAgICAgICAgICAgICAgICAgImxuZyIgOiAtNC4wMDY0NTQKICAgICAgICAg - ICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb24i - IDogewogICAgICAgICAgICAgICAibGF0IiA6IDQwLjQ5NTU0OTMsCiAgICAg - ICAgICAgICAgICJsbmciIDogLTMuNjYyMzIzOQogICAgICAgICAgICB9LAog - ICAgICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAiQVBQUk9YSU1BVEUiLAog - ICAgICAgICAgICAidmlld3BvcnQiIDogewogICAgICAgICAgICAgICAibm9y - dGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC42NDUz - ODc1LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjI4Mzg5NzgKICAg - ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7 - CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuMTk4OTI2OSwKICAgICAg - ICAgICAgICAgICAgImxuZyIgOiAtNC4wMDY0NTQKICAgICAgICAgICAgICAg - fQogICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJ0eXBlcyIg - OiBbICJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzMiLCAicG9saXRpY2Fs - IiBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAgImFkZHJlc3NfY29tcG9u - ZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdf + cmVzcyIgOiAiMjgwMTMgTWFkcmlkLCBTcGFpbiIsCiAgICAgICAgICJnZW9t + ZXRyeSIgOiB7CiAgICAgICAgICAgICJib3VuZHMiIDogewogICAgICAgICAg + ICAgICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIg + OiA0MC40MjQ0OTYxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjY5 + Njk2NDMKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRo + d2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDE0OTM0 + MywKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MjI3NzAzCiAgICAg + ICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0 + aW9uIiA6IHsKICAgICAgICAgICAgICAgImxhdCIgOiA0MC40MTg5NjQ1LAog + ICAgICAgICAgICAgICAibG5nIiA6IC0zLjcxMTc4MDYKICAgICAgICAgICAg + fSwKICAgICAgICAgICAgImxvY2F0aW9uX3R5cGUiIDogIkFQUFJPWElNQVRF + IiwKICAgICAgICAgICAgInZpZXdwb3J0IiA6IHsKICAgICAgICAgICAgICAg + Im5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAu + NDI0NDk2MSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy42OTY5NjQz + CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3Qi + IDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQwLjQxNDkzNDMsCiAg + ICAgICAgICAgICAgICAgICJsbmciIDogLTMuNzIyNzcwMwogICAgICAgICAg + ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgInR5 + cGVzIiA6IFsgInBvc3RhbF9jb2RlIiBdCiAgICAgIH0sCiAgICAgIHsKICAg + ICAgICAgImFkZHJlc3NfY29tcG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsK + ICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiQ2VudHJvIiwKICAgICAg + ICAgICAgICAgInNob3J0X25hbWUiIDogIkNlbnRybyIsCiAgICAgICAgICAg + ICAgICJ0eXBlcyIgOiBbICJzdWJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0K + ICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAi + bG9uZ19uYW1lIiA6ICJNYWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRf + bmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsg + ImxvY2FsaXR5IiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAg + ICAgICAgICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIk1hZHJp + ZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJNYWRyaWQiLAog + ICAgICAgICAgICAgICAidHlwZXMiIDogWyAicG9saXRpY2FsIiBdCiAgICAg + ICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdf bmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAgICAgICAgInNob3J0X25hbWUi IDogIk0iLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAiYWRtaW5pc3Ry YXRpdmVfYXJlYV9sZXZlbF8yIiwgInBvbGl0aWNhbCIgXQogICAgICAgICAg @@ -375,80 +230,228 @@ http_interactions: ICAgICAgICAic2hvcnRfbmFtZSIgOiAiRVMiLAogICAgICAgICAgICAgICAi dHlwZXMiIDogWyAiY291bnRyeSIsICJwb2xpdGljYWwiIF0KICAgICAgICAg ICAgfQogICAgICAgICBdLAogICAgICAgICAiZm9ybWF0dGVkX2FkZHJlc3Mi - IDogIk1hZHJpZCwgU3BhaW4iLAogICAgICAgICAiZ2VvbWV0cnkiIDogewog - ICAgICAgICAgICAiYm91bmRzIiA6IHsKICAgICAgICAgICAgICAgIm5vcnRo - ZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDEuMTY1ODQ0 - NzAwMDAwMDEsCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuMDUyOTgz - MwogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAic291dGh3ZXN0 - IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiAzOS44ODQ3MTk1LAog - ICAgICAgICAgICAgICAgICAibG5nIiA6IC00LjU3OTA3NgogICAgICAgICAg - ICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbiIg - OiB7CiAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDE2NzA4OCwKICAgICAg - ICAgICAgICAgImxuZyIgOiAtMy41ODEyNjkyCiAgICAgICAgICAgIH0sCiAg - ICAgICAgICAgICJsb2NhdGlvbl90eXBlIiA6ICJBUFBST1hJTUFURSIsCiAg - ICAgICAgICAgICJ2aWV3cG9ydCIgOiB7CiAgICAgICAgICAgICAgICJub3J0 - aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQxLjE2NTg0 - NDcwMDAwMDAxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjA1Mjk4 - MzMKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2Vz - dCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogMzkuODg0NzE5NSwK - ICAgICAgICAgICAgICAgICAgImxuZyIgOiAtNC41NzkwNzYKICAgICAgICAg - ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJ0 - eXBlcyIgOiBbICJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzIiLCAicG9s - aXRpY2FsIiBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAgImFkZHJlc3Nf - Y29tcG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg - ImxvbmdfbmFtZSIgOiAiQ29tbXVuaXR5IG9mIE1hZHJpZCIsCiAgICAgICAg - ICAgICAgICJzaG9ydF9uYW1lIiA6ICJDb21tdW5pdHkgb2YgTWFkcmlkIiwK - ICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgImFkbWluaXN0cmF0aXZlX2Fy - ZWFfbGV2ZWxfMSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwKICAg - ICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJTcGFp - biIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJFUyIsCiAgICAg - ICAgICAgICAgICJ0eXBlcyIgOiBbICJjb3VudHJ5IiwgInBvbGl0aWNhbCIg - XQogICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJmb3JtYXR0 - ZWRfYWRkcmVzcyIgOiAiQ29tbXVuaXR5IG9mIE1hZHJpZCwgU3BhaW4iLAog - ICAgICAgICAiZ2VvbWV0cnkiIDogewogICAgICAgICAgICAiYm91bmRzIiA6 - IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAg - ICAgICAgICJsYXQiIDogNDEuMTY1ODQ0NzAwMDAwMDEsCiAgICAgICAgICAg - ICAgICAgICJsbmciIDogLTMuMDUyOTgzMwogICAgICAgICAgICAgICB9LAog - ICAgICAgICAgICAgICAic291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAg - ICAgImxhdCIgOiAzOS44ODQ3MTk1LAogICAgICAgICAgICAgICAgICAibG5n - IiA6IC00LjU3OTA3NgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0s - CiAgICAgICAgICAgICJsb2NhdGlvbiIgOiB7CiAgICAgICAgICAgICAgICJs - YXQiIDogNDAuNDE2NzUxNSwKICAgICAgICAgICAgICAgImxuZyIgOiAtMy43 - MDM4MzIyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbl90 - eXBlIiA6ICJBUFBST1hJTUFURSIsCiAgICAgICAgICAgICJ2aWV3cG9ydCIg - OiB7CiAgICAgICAgICAgICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAg - ICAgICAgICAibGF0IiA6IDQxLjE2NTg0NDcwMDAwMDAxLAogICAgICAgICAg - ICAgICAgICAibG5nIiA6IC0zLjA1Mjk4MzMKICAgICAgICAgICAgICAgfSwK - ICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAg - ICAgICJsYXQiIDogMzkuODg0NzE5NSwKICAgICAgICAgICAgICAgICAgImxu - ZyIgOiAtNC41NzkwNzYKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 - CiAgICAgICAgIH0sCiAgICAgICAgICJ0eXBlcyIgOiBbICJhZG1pbmlzdHJh - dGl2ZV9hcmVhX2xldmVsXzEiLCAicG9saXRpY2FsIiBdCiAgICAgIH0sCiAg - ICAgIHsKICAgICAgICAgImFkZHJlc3NfY29tcG9uZW50cyIgOiBbCiAgICAg - ICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiU3BhaW4i - LAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiRVMiLAogICAgICAg - ICAgICAgICAidHlwZXMiIDogWyAiY291bnRyeSIsICJwb2xpdGljYWwiIF0K - ICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZm9ybWF0dGVk - X2FkZHJlc3MiIDogIlNwYWluIiwKICAgICAgICAgImdlb21ldHJ5IiA6IHsK - ICAgICAgICAgICAgImJvdW5kcyIgOiB7CiAgICAgICAgICAgICAgICJub3J0 - aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQzLjc5MjM0 - OTUsCiAgICAgICAgICAgICAgICAgICJsbmciIDogNC4zMjc3ODM5CiAgICAg - ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewog - ICAgICAgICAgICAgICAgICAibGF0IiA6IDI3LjYzNzc4OTQsCiAgICAgICAg - ICAgICAgICAgICJsbmciIDogLTE4LjE2MTIyMTYKICAgICAgICAgICAgICAg - fQogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb24iIDogewog - ICAgICAgICAgICAgICAibGF0IiA6IDQwLjQ2MzY2NzAwMDAwMDAxLAogICAg - ICAgICAgICAgICAibG5nIiA6IC0zLjc0OTIyCiAgICAgICAgICAgIH0sCiAg - ICAgICAgICAgICJsb2NhdGlvbl90eXBlIiA6ICJBUFBST1hJTUFURSIsCiAg - ICAgICAgICAgICJ2aWV3cG9ydCIgOiB7CiAgICAgICAgICAgICAgICJub3J0 - aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQ1LjI0NCwK - ICAgICAgICAgICAgICAgICAgImxuZyIgOiA1LjA5OAogICAgICAgICAgICAg - ICB9LAogICAgICAgICAgICAgICAic291dGh3ZXN0IiA6IHsKICAgICAgICAg - ICAgICAgICAgImxhdCIgOiAzNS4xNzMwMDAwMDAwMDAwMSwKICAgICAgICAg - ICAgICAgICAgImxuZyIgOiAtMTIuNTI0CiAgICAgICAgICAgICAgIH0KICAg + IDogIkNlbnRybywgTWFkcmlkLCBTcGFpbiIsCiAgICAgICAgICJnZW9tZXRy + eSIgOiB7CiAgICAgICAgICAgICJib3VuZHMiIDogewogICAgICAgICAgICAg + ICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0 + MC40MzA2MTYsCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuNjkwMjg5 + CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3Qi + IDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQwLjQwNTA0MSwKICAg + ICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MjI4NzgKICAgICAgICAgICAg + ICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb24iIDog + ewogICAgICAgICAgICAgICAibGF0IiA6IDQwLjQxMTUxNjUsCiAgICAgICAg + ICAgICAgICJsbmciIDogLTMuNzA3NjQ0NQogICAgICAgICAgICB9LAogICAg + ICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAiQVBQUk9YSU1BVEUiLAogICAg + ICAgICAgICAidmlld3BvcnQiIDogewogICAgICAgICAgICAgICAibm9ydGhl + YXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC40MzA2MTYs + CiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuNjkwMjg5CiAgICAgICAg + ICAgICAgIH0sCiAgICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewogICAg + ICAgICAgICAgICAgICAibGF0IiA6IDQwLjQwNTA0MSwKICAgICAgICAgICAg + ICAgICAgImxuZyIgOiAtMy43MjI4NzgKICAgICAgICAgICAgICAgfQogICAg + ICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJ0eXBlcyIgOiBbICJz + dWJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0KICAgICAgfSwKICAgICAgewog + ICAgICAgICAiYWRkcmVzc19jb21wb25lbnRzIiA6IFsKICAgICAgICAgICAg + ewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJNYWRyaWQiLAogICAg + ICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAg + ICAgICAgInR5cGVzIiA6IFsgImxvY2FsaXR5IiwgInBvbGl0aWNhbCIgXQog + ICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJs + b25nX25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9u + YW1lIiA6ICJNYWRyaWQiLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAi + cG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAg + ICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiTWFkcmlkIiwKICAgICAgICAg + ICAgICAgInNob3J0X25hbWUiIDogIk0iLAogICAgICAgICAgICAgICAidHlw + ZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8yIiwgInBvbGl0 + aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAg + ICAgICAgICJsb25nX25hbWUiIDogIkNvbW11bml0eSBvZiBNYWRyaWQiLAog + ICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiQ29tbXVuaXR5IG9mIE1h + ZHJpZCIsCiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJhZG1pbmlzdHJh + dGl2ZV9hcmVhX2xldmVsXzEiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAg + IH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIg + OiAiU3BhaW4iLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiRVMi + LAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAiY291bnRyeSIsICJwb2xp + dGljYWwiIF0KICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAi + Zm9ybWF0dGVkX2FkZHJlc3MiIDogIk1hZHJpZCwgU3BhaW4iLAogICAgICAg + ICAiZ2VvbWV0cnkiIDogewogICAgICAgICAgICAiYm91bmRzIiA6IHsKICAg + ICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAg + ICJsYXQiIDogNDAuNTYzNTkwMywKICAgICAgICAgICAgICAgICAgImxuZyIg + OiAtMy41MjQ5MTE2CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg + ICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQw + LjMxMjA2MzksCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuODM0MTYx + OAogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAg + ICJsb2NhdGlvbiIgOiB7CiAgICAgICAgICAgICAgICJsYXQiIDogNDAuNDE2 + Nzc1NCwKICAgICAgICAgICAgICAgImxuZyIgOiAtMy43MDM3OTAyCiAgICAg + ICAgICAgIH0sCiAgICAgICAgICAgICJsb2NhdGlvbl90eXBlIiA6ICJBUFBS + T1hJTUFURSIsCiAgICAgICAgICAgICJ2aWV3cG9ydCIgOiB7CiAgICAgICAg + ICAgICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0 + IiA6IDQwLjU2MzU5MDMsCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMu + NTI0OTExNgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAic291 + dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0MC4zMTIw + NjM5LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjgzNDE2MTgKICAg + ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAg + ICAgICJ0eXBlcyIgOiBbICJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0KICAg + ICAgfSwKICAgICAgewogICAgICAgICAiYWRkcmVzc19jb21wb25lbnRzIiA6 + IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6 + ICJNYWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiTWFk + cmlkIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgInBvbGl0aWNhbCIg + XQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAg + ICJsb25nX25hbWUiIDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9y + dF9uYW1lIiA6ICJNIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgImFk + bWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMiIsICJwb2xpdGljYWwiIF0KICAg + ICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9u + Z19uYW1lIiA6ICJDb21tdW5pdHkgb2YgTWFkcmlkIiwKICAgICAgICAgICAg + ICAgInNob3J0X25hbWUiIDogIkNvbW11bml0eSBvZiBNYWRyaWQiLAogICAg + ICAgICAgICAgICAidHlwZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9s + ZXZlbF8xIiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAg + ICAgICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIlNwYWluIiwK + ICAgICAgICAgICAgICAgInNob3J0X25hbWUiIDogIkVTIiwKICAgICAgICAg + ICAgICAgInR5cGVzIiA6IFsgImNvdW50cnkiLCAicG9saXRpY2FsIiBdCiAg + ICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImZvcm1hdHRlZF9h + ZGRyZXNzIiA6ICJNYWRyaWQsIFNwYWluIiwKICAgICAgICAgImdlb21ldHJ5 + IiA6IHsKICAgICAgICAgICAgImJvdW5kcyIgOiB7CiAgICAgICAgICAgICAg + ICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQw + LjY0MzMzMjY5OTk5OTk5LAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0z + LjUxODIzNDkKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNv + dXRod2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDAuMzEy + MDYzOSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAtMy44ODg5NTY2CiAg + ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxv + Y2F0aW9uIiA6IHsKICAgICAgICAgICAgICAgImxhdCIgOiA0MC40MTU3NTY5 + LAogICAgICAgICAgICAgICAibG5nIiA6IC0zLjcwMzcyMTQ5OTk5OTk5OQog + ICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAi + QVBQUk9YSU1BVEUiLAogICAgICAgICAgICAidmlld3BvcnQiIDogewogICAg + ICAgICAgICAgICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAg + ImxhdCIgOiA0MC42NDMzMzI2OTk5OTk5OSwKICAgICAgICAgICAgICAgICAg + ImxuZyIgOiAtMy41MTgyMzQ5CiAgICAgICAgICAgICAgIH0sCiAgICAgICAg + ICAgICAgICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAgICAibGF0 + IiA6IDQwLjMxMjA2MzksCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMu + ODg4OTU2NgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg + ICAgfSwKICAgICAgICAgInR5cGVzIiA6IFsgInBvbGl0aWNhbCIgXQogICAg + ICB9LAogICAgICB7CiAgICAgICAgICJhZGRyZXNzX2NvbXBvbmVudHMiIDog + WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDog + IsOBcmVhIE1ldHJvcG9saXRhbGl0YW5hIHkgQ29ycmVkb3IgZGVsIEhlbmFy + ZXMiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiw4FyZWEgTWV0 + cm9wb2xpdGFsaXRhbmEgeSBDb3JyZWRvciBkZWwgSGVuYXJlcyIsCiAgICAg + ICAgICAgICAgICJ0eXBlcyIgOiBbICJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xl + dmVsXzMiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0sCiAgICAgICAg + ICAgIHsKICAgICAgICAgICAgICAgImxvbmdfbmFtZSIgOiAiTWFkcmlkIiwK + ICAgICAgICAgICAgICAgInNob3J0X25hbWUiIDogIk0iLAogICAgICAgICAg + ICAgICAidHlwZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8y + IiwgInBvbGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAgICB7 + CiAgICAgICAgICAgICAgICJsb25nX25hbWUiIDogIkNvbW11bml0eSBvZiBN + YWRyaWQiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIgOiAiQ29tbXVu + aXR5IG9mIE1hZHJpZCIsCiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBbICJh + ZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLCAicG9saXRpY2FsIiBdCiAg + ICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxv + bmdfbmFtZSIgOiAiU3BhaW4iLAogICAgICAgICAgICAgICAic2hvcnRfbmFt + ZSIgOiAiRVMiLAogICAgICAgICAgICAgICAidHlwZXMiIDogWyAiY291bnRy + eSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfQogICAgICAgICBdLAog + ICAgICAgICAiZm9ybWF0dGVkX2FkZHJlc3MiIDogIsOBcmVhIE1ldHJvcG9s + aXRhbGl0YW5hIHkgQ29ycmVkb3IgZGVsIEhlbmFyZXMsIE1hZHJpZCwgU3Bh + aW4iLAogICAgICAgICAiZ2VvbWV0cnkiIDogewogICAgICAgICAgICAiYm91 + bmRzIiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAg + ICAgICAgICAgICAgICJsYXQiIDogNDAuNjQ1Mzg3NSwKICAgICAgICAgICAg + ICAgICAgImxuZyIgOiAtMy4yODM4OTc5CiAgICAgICAgICAgICAgIH0sCiAg + ICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAg + ICAibGF0IiA6IDQwLjE5ODkyNjksCiAgICAgICAgICAgICAgICAgICJsbmci + IDogLTQuMDA2NDUzODk5OTk5OTk5CiAgICAgICAgICAgICAgIH0KICAgICAg + ICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9uIiA6IHsKICAgICAgICAg + ICAgICAgImxhdCIgOiA0MC40OTU1NDkzLAogICAgICAgICAgICAgICAibG5n + IiA6IC0zLjY2MjMyMzkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxv + Y2F0aW9uX3R5cGUiIDogIkFQUFJPWElNQVRFIiwKICAgICAgICAgICAgInZp + ZXdwb3J0IiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAg + ICAgICAgICAgICAgICAgICJsYXQiIDogNDAuNjQ1Mzg3NSwKICAgICAgICAg + ICAgICAgICAgImxuZyIgOiAtMy4yODM4OTc5CiAgICAgICAgICAgICAgIH0s + CiAgICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAg + ICAgICAibGF0IiA6IDQwLjE5ODkyNjksCiAgICAgICAgICAgICAgICAgICJs + bmciIDogLTQuMDA2NDUzODk5OTk5OTk5CiAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAidHlwZXMiIDogWyAi - Y291bnRyeSIsICJwb2xpdGljYWwiIF0KICAgICAgfQogICBdLAogICAic3Rh - dHVzIiA6ICJPSyIKfQo= + YWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8zIiwgInBvbGl0aWNhbCIgXQog + ICAgICB9LAogICAgICB7CiAgICAgICAgICJhZGRyZXNzX2NvbXBvbmVudHMi + IDogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICJsb25nX25hbWUi + IDogIk1hZHJpZCIsCiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJN + IiwKICAgICAgICAgICAgICAgInR5cGVzIiA6IFsgImFkbWluaXN0cmF0aXZl + X2FyZWFfbGV2ZWxfMiIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwK + ICAgICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJD + b21tdW5pdHkgb2YgTWFkcmlkIiwKICAgICAgICAgICAgICAgInNob3J0X25h + bWUiIDogIkNvbW11bml0eSBvZiBNYWRyaWQiLAogICAgICAgICAgICAgICAi + dHlwZXMiIDogWyAiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xIiwgInBv + bGl0aWNhbCIgXQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAg + ICAgICAgICAgICJsb25nX25hbWUiIDogIlNwYWluIiwKICAgICAgICAgICAg + ICAgInNob3J0X25hbWUiIDogIkVTIiwKICAgICAgICAgICAgICAgInR5cGVz + IiA6IFsgImNvdW50cnkiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0K + ICAgICAgICAgXSwKICAgICAgICAgImZvcm1hdHRlZF9hZGRyZXNzIiA6ICJN + YWRyaWQsIFNwYWluIiwKICAgICAgICAgImdlb21ldHJ5IiA6IHsKICAgICAg + ICAgICAgImJvdW5kcyIgOiB7CiAgICAgICAgICAgICAgICJub3J0aGVhc3Qi + IDogewogICAgICAgICAgICAgICAgICAibGF0IiA6IDQxLjE2NTg0NDcwMDAw + MDAxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IC0zLjA1Mjk4MzMKICAg + ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7 + CiAgICAgICAgICAgICAgICAgICJsYXQiIDogMzkuODg0NzE5NSwKICAgICAg + ICAgICAgICAgICAgImxuZyIgOiAtNC41NzkwNzYxCiAgICAgICAgICAgICAg + IH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9uIiA6IHsK + ICAgICAgICAgICAgICAgImxhdCIgOiA0MC40MTYyODgzLAogICAgICAgICAg + ICAgICAibG5nIiA6IC0zLjcwMzM3MjUKICAgICAgICAgICAgfSwKICAgICAg + ICAgICAgImxvY2F0aW9uX3R5cGUiIDogIkFQUFJPWElNQVRFIiwKICAgICAg + ICAgICAgInZpZXdwb3J0IiA6IHsKICAgICAgICAgICAgICAgIm5vcnRoZWFz + dCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDEuMTY1ODQ0NzAw + MDAwMDEsCiAgICAgICAgICAgICAgICAgICJsbmciIDogLTMuMDUyOTgzMwog + ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAic291dGh3ZXN0IiA6 + IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiAzOS44ODQ3MTk1LAogICAg + ICAgICAgICAgICAgICAibG5nIiA6IC00LjU3OTA3NjEKICAgICAgICAgICAg + ICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJ0eXBl + cyIgOiBbICJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzIiLCAicG9saXRp + Y2FsIiBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAgImFkZHJlc3NfY29t + cG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgImxv + bmdfbmFtZSIgOiAiQ29tbXVuaXR5IG9mIE1hZHJpZCIsCiAgICAgICAgICAg + ICAgICJzaG9ydF9uYW1lIiA6ICJDb21tdW5pdHkgb2YgTWFkcmlkIiwKICAg + ICAgICAgICAgICAgInR5cGVzIiA6IFsgImFkbWluaXN0cmF0aXZlX2FyZWFf + bGV2ZWxfMSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwKICAgICAg + ICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJTcGFpbiIs + CiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJFUyIsCiAgICAgICAg + ICAgICAgICJ0eXBlcyIgOiBbICJjb3VudHJ5IiwgInBvbGl0aWNhbCIgXQog + ICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJmb3JtYXR0ZWRf + YWRkcmVzcyIgOiAiQ29tbXVuaXR5IG9mIE1hZHJpZCwgU3BhaW4iLAogICAg + ICAgICAiZ2VvbWV0cnkiIDogewogICAgICAgICAgICAiYm91bmRzIiA6IHsK + ICAgICAgICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAgICAg + ICAgICJsYXQiIDogNDEuMTY1ODQ0NzAwMDAwMDEsCiAgICAgICAgICAgICAg + ICAgICJsbmciIDogLTMuMDUyOTgzMwogICAgICAgICAgICAgICB9LAogICAg + ICAgICAgICAgICAic291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAgICAg + ImxhdCIgOiAzOS44ODQ3MTk1LAogICAgICAgICAgICAgICAgICAibG5nIiA6 + IC00LjU3OTA3NjEKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAog + ICAgICAgICAgICAibG9jYXRpb24iIDogewogICAgICAgICAgICAgICAibGF0 + IiA6IDQwLjQxNjc1MTUsCiAgICAgICAgICAgICAgICJsbmciIDogLTMuNzAz + ODMyMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibG9jYXRpb25fdHlw + ZSIgOiAiQVBQUk9YSU1BVEUiLAogICAgICAgICAgICAidmlld3BvcnQiIDog + ewogICAgICAgICAgICAgICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAg + ICAgICAgImxhdCIgOiA0MS4xNjU4NDQ3MDAwMDAwMSwKICAgICAgICAgICAg + ICAgICAgImxuZyIgOiAtMy4wNTI5ODMzCiAgICAgICAgICAgICAgIH0sCiAg + ICAgICAgICAgICAgICJzb3V0aHdlc3QiIDogewogICAgICAgICAgICAgICAg + ICAibGF0IiA6IDM5Ljg4NDcxOTUsCiAgICAgICAgICAgICAgICAgICJsbmci + IDogLTQuNTc5MDc2MQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K + ICAgICAgICAgfSwKICAgICAgICAgInR5cGVzIiA6IFsgImFkbWluaXN0cmF0 + aXZlX2FyZWFfbGV2ZWxfMSIsICJwb2xpdGljYWwiIF0KICAgICAgfSwKICAg + ICAgewogICAgICAgICAiYWRkcmVzc19jb21wb25lbnRzIiA6IFsKICAgICAg + ICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJTcGFpbiIs + CiAgICAgICAgICAgICAgICJzaG9ydF9uYW1lIiA6ICJFUyIsCiAgICAgICAg + ICAgICAgICJ0eXBlcyIgOiBbICJjb3VudHJ5IiwgInBvbGl0aWNhbCIgXQog + ICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJmb3JtYXR0ZWRf + YWRkcmVzcyIgOiAiU3BhaW4iLAogICAgICAgICAiZ2VvbWV0cnkiIDogewog + ICAgICAgICAgICAiYm91bmRzIiA6IHsKICAgICAgICAgICAgICAgIm5vcnRo + ZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQiIDogNDMuNzkyMzc5 + NSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiA0LjMyNzc4Mzk5OTk5OTk5 + OQogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAic291dGh3ZXN0 + IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiAyNy42Mzc3ODk0LAog + ICAgICAgICAgICAgICAgICAibG5nIiA6IC0xOC4xNjA3ODgxCiAgICAgICAg + ICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9u + IiA6IHsKICAgICAgICAgICAgICAgImxhdCIgOiA0MC40NjM2NjcwMDAwMDAw + MSwKICAgICAgICAgICAgICAgImxuZyIgOiAtMy43NDkyMgogICAgICAgICAg + ICB9LAogICAgICAgICAgICAibG9jYXRpb25fdHlwZSIgOiAiQVBQUk9YSU1B + VEUiLAogICAgICAgICAgICAidmlld3BvcnQiIDogewogICAgICAgICAgICAg + ICAibm9ydGhlYXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiA0 + NS4yNDQsCiAgICAgICAgICAgICAgICAgICJsbmciIDogNS4wOTgKICAgICAg + ICAgICAgICAgfSwKICAgICAgICAgICAgICAgInNvdXRod2VzdCIgOiB7CiAg + ICAgICAgICAgICAgICAgICJsYXQiIDogMzUuMTczMDAwMDAwMDAwMDEsCiAg + ICAgICAgICAgICAgICAgICJsbmciIDogLTEyLjUyNAogICAgICAgICAgICAg + ICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgInR5cGVz + IiA6IFsgImNvdW50cnkiLCAicG9saXRpY2FsIiBdCiAgICAgIH0KICAgXSwK + ICAgInN0YXR1cyIgOiAiT0siCn0K http_version: - recorded_at: Wed, 13 Nov 2013 14:55:52 GMT -recorded_with: VCR 2.7.0 + recorded_at: Sun, 26 Jan 2014 05:46:39 GMT +recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/google_reverse_madrid_es.yml b/fixtures/vcr_cassettes/google_reverse_madrid_es.yml index 5e2c6ec6..c8049a93 100644 --- a/fixtures/vcr_cassettes/google_reverse_madrid_es.yml +++ b/fixtures/vcr_cassettes/google_reverse_madrid_es.yml @@ -2,48 +2,42 @@ http_interactions: - request: method: get - uri: http://maps.google.com/maps/api/geocode/json?language=es&latlng=40.416,-3.703&sensor=false + uri: https://maps.google.com/maps/api/geocode/json?language=es&latlng=40.416,-3.703&sensor=false body: encoding: US-ASCII string: '' headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - - ! '*/*' + - '*/*' User-Agent: - Ruby response: status: code: 200 - message: !binary |- - T0s= + message: OK headers: - !binary "Q29udGVudC1UeXBl": - - !binary |- - YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOA== - !binary "RGF0ZQ==": - - !binary |- - RnJpLCAyNyBEZWMgMjAxMyAxMToyNDoyMyBHTVQ= - !binary "RXhwaXJlcw==": - - !binary |- - U2F0LCAyOCBEZWMgMjAxMyAxMToyNDoyMyBHTVQ= - !binary "Q2FjaGUtQ29udHJvbA==": - - !binary |- - cHVibGljLCBtYXgtYWdlPTg2NDAw - !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu": - - !binary |- - Kg== - !binary "U2VydmVy": - - !binary |- - bWFmZQ== - !binary "WC1Yc3MtUHJvdGVjdGlvbg==": - - !binary |- - MTsgbW9kZT1ibG9jaw== - !binary "WC1GcmFtZS1PcHRpb25z": - - !binary |- - U0FNRU9SSUdJTg== - !binary "VHJhbnNmZXItRW5jb2Rpbmc=": - - !binary |- - Y2h1bmtlZA== + Content-Type: + - application/json; charset=UTF-8 + Date: + - Sun, 26 Jan 2014 05:46:39 GMT + Expires: + - Mon, 27 Jan 2014 05:46:39 GMT + Cache-Control: + - public, max-age=86400 + Access-Control-Allow-Origin: + - '*' + Server: + - mafe + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + Alternate-Protocol: + - 443:quic + Transfer-Encoding: + - chunked body: encoding: ASCII-8BIT string: !binary |- @@ -459,5 +453,5 @@ http_interactions: dHlwZXMiIDogWyAiY291bnRyeSIsICJwb2xpdGljYWwiIF0KICAgICAgfQog ICBdLAogICAic3RhdHVzIiA6ICJPSyIKfQo= http_version: - recorded_at: Fri, 27 Dec 2013 11:24:21 GMT + recorded_at: Sun, 26 Jan 2014 05:46:40 GMT recorded_with: VCR 2.8.0 diff --git a/fixtures/vcr_cassettes/yahoo_city.yml b/fixtures/vcr_cassettes/yahoo_city.yml index b2859ee9..e89e5c8b 100644 --- a/fixtures/vcr_cassettes/yahoo_city.yml +++ b/fixtures/vcr_cassettes/yahoo_city.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=731410e6df&oauth_signature=%2Bde/2eYXvMPhoRu5MUdjhPct3xY=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355278&oauth_version=1.0&q=San%20Francisco,%20CA + uri: https://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=731410e6df&oauth_signature=%2Bde/2eYXvMPhoRu5MUdjhPct3xY=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355278&oauth_version=1.0&q=San%20Francisco,%20CA body: encoding: US-ASCII string: '' diff --git a/fixtures/vcr_cassettes/yahoo_full.yml b/fixtures/vcr_cassettes/yahoo_full.yml index c47173df..638b60c5 100644 --- a/fixtures/vcr_cassettes/yahoo_full.yml +++ b/fixtures/vcr_cassettes/yahoo_full.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=7a0ce94e38&oauth_signature=aTamhmDusxM4xYZXWocDEb5YmyE=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355278&oauth_version=1.0&q=100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US + uri: https://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=7a0ce94e38&oauth_signature=aTamhmDusxM4xYZXWocDEb5YmyE=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355278&oauth_version=1.0&q=100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US body: encoding: US-ASCII string: '' diff --git a/fixtures/vcr_cassettes/yahoo_no_results.yml b/fixtures/vcr_cassettes/yahoo_no_results.yml index 91409ef2..b43f2cfb 100644 --- a/fixtures/vcr_cassettes/yahoo_no_results.yml +++ b/fixtures/vcr_cassettes/yahoo_no_results.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=2c5ad2f846&oauth_signature=h2eR3b0GSWsgqU2nJhd1jPP8ihI=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355895&oauth_version=1.0&q=ZZ,%20ZZ,%20ZZ + uri: https://yboss.yahooapis.com/geo/placefinder?flags=J&oauth_consumer_key=dj0yJmk9cXByQVN2WHZmTVhDJmQ9WVdrOVZscG1WVWhOTldrbWNHbzlNakF6TlRJME16UTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD0zNg--&oauth_nonce=2c5ad2f846&oauth_signature=h2eR3b0GSWsgqU2nJhd1jPP8ihI=&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1384355895&oauth_version=1.0&q=ZZ,%20ZZ,%20ZZ body: encoding: US-ASCII string: '' diff --git a/lib/geokit/geocoders.rb b/lib/geokit/geocoders.rb index 7a6ca65f..da55a250 100644 --- a/lib/geokit/geocoders.rb +++ b/lib/geokit/geocoders.rb @@ -40,6 +40,8 @@ module Geocoders @@logger.level=Logger::INFO @@domain = nil @@net_adapter = Geokit::NetAdapter::NetHttp + @@secure = true + @@ssl_verify_mode = OpenSSL::SSL::VERIFY_PEER def self.__define_accessors class_variables.each do |v| @@ -121,6 +123,10 @@ def self.#{attr} end end + def self.inherited(base) + base.config :secure + end + def self.new_loc loc = GeoLoc.new loc.provider = Geokit::Inflector.underscore(provider_name) @@ -142,6 +148,14 @@ def self.do_reverse_geocode(latlng) GeoLoc.new end + def self.use_https? + self.secure && Geokit::Geocoders.secure + end + + def self.protocol + use_https? ? 'https' : 'http' + end + # Wraps the geocoder call around a proxy if necessary. def self.do_get(url) net_adapter.do_get(url) diff --git a/lib/geokit/geocoders/bing.rb b/lib/geokit/geocoders/bing.rb index d4a8a1a5..fceec52f 100644 --- a/lib/geokit/geocoders/bing.rb +++ b/lib/geokit/geocoders/bing.rb @@ -4,6 +4,7 @@ module Geocoders # contain a Bing Maps API key. Conforms to the interface set by the Geocoder class. class BingGeocoder < Geocoder config :key, :options + self.secure = true private @@ -20,7 +21,7 @@ def self.submit_url(address) culture = options && options[:culture] culture_string = culture ? "&c=#{culture}" : '' address_str = address.is_a?(GeoLoc) ? address.to_geocodeable_s : address - "http://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address_str)}?key=#{key}#{culture_string}&o=xml" + "#{protocol}://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address_str)}?key=#{key}#{culture_string}&o=xml" end def self.parse_xml(xml) diff --git a/lib/geokit/geocoders/fcc.rb b/lib/geokit/geocoders/fcc.rb index 7029f567..f9829e78 100644 --- a/lib/geokit/geocoders/fcc.rb +++ b/lib/geokit/geocoders/fcc.rb @@ -1,12 +1,13 @@ module Geokit module Geocoders class FCCGeocoder < Geocoder + self.secure = true private # Template method which does the reverse-geocode lookup. def self.do_reverse_geocode(latlng) latlng=LatLng.normalize(latlng) - url = "http://data.fcc.gov/api/block/find?format=json&latitude=#{Geokit::Inflector::url_escape(latlng.lat.to_s)}&longitude=#{Geokit::Inflector::url_escape(latlng.lng.to_s)}" + url = "#{protocol}://data.fcc.gov/api/block/find?format=json&latitude=#{Geokit::Inflector::url_escape(latlng.lat.to_s)}&longitude=#{Geokit::Inflector::url_escape(latlng.lng.to_s)}" process :json, url end diff --git a/lib/geokit/geocoders/google.rb b/lib/geokit/geocoders/google.rb index eff69a13..4e8d5ef4 100644 --- a/lib/geokit/geocoders/google.rb +++ b/lib/geokit/geocoders/google.rb @@ -2,6 +2,7 @@ module Geokit module Geocoders class GoogleGeocoder < Geocoder config :client_id, :cryptographic_key, :channel + self.secure = true private # ==== OPTIONS @@ -62,9 +63,9 @@ def self.submit_url(query_string, options = {}) channel_string = channel ? "&channel=#{channel}" : '' urlToSign = query_string + "&client=#{client_id}" + channel_string signature = sign_gmap_bus_api_url(urlToSign, cryptographic_key) - "http://maps.googleapis.com" + urlToSign + "&signature=#{signature}" + "#{protocol}://maps.googleapis.com" + urlToSign + "&signature=#{signature}" else - "http://maps.google.com" + query_string + "#{protocol}://maps.google.com" + query_string end end diff --git a/lib/geokit/geocoders/mapquest.rb b/lib/geokit/geocoders/mapquest.rb index d0ecd48f..b8210443 100644 --- a/lib/geokit/geocoders/mapquest.rb +++ b/lib/geokit/geocoders/mapquest.rb @@ -4,20 +4,21 @@ module Geocoders # contain a MapQuest API key. Conforms to the interface set by the Geocoder class. class MapQuestGeocoder < Geocoder config :key + self.secure = true private # Template method which does the reverse-geocode lookup. def self.do_reverse_geocode(latlng) latlng=LatLng.normalize(latlng) - url = "http://www.mapquestapi.com/geocoding/v1/reverse?key=#{key}&location=#{latlng.lat},#{latlng.lng}" + url = "#{protocol}://www.mapquestapi.com/geocoding/v1/reverse?key=#{key}&location=#{latlng.lat},#{latlng.lng}" process :json, url end # Template method which does the geocode lookup. def self.do_geocode(address) address_str = address.is_a?(GeoLoc) ? address.to_geocodeable_s : address - url = "http://www.mapquestapi.com/geocoding/v1/address?key=#{key}&location=#{Geokit::Inflector::url_escape(address_str)}" + url = "#{protocol}://www.mapquestapi.com/geocoding/v1/address?key=#{key}&location=#{Geokit::Inflector::url_escape(address_str)}" process :json, url end diff --git a/lib/geokit/geocoders/ripe.rb b/lib/geokit/geocoders/ripe.rb index 89a3be50..3dca76e2 100644 --- a/lib/geokit/geocoders/ripe.rb +++ b/lib/geokit/geocoders/ripe.rb @@ -2,6 +2,7 @@ module Geokit module Geocoders # Provides geocoding based upon an IP address. The underlying web service is geoplugin.net class RipeGeocoder < BaseIpGeocoder + self.secure = false # supports HTTPS, but Net::HTTPS doesn't like the server private def self.do_geocode(ip) @@ -9,7 +10,7 @@ def self.do_geocode(ip) end def self.submit_url(ip) - "http://stat.ripe.net/data/geoloc/data.json?resource=#{ip}" + "#{protocol}://stat.ripe.net/data/geoloc/data.json?resource=#{ip}" end def self.parse_json(json) diff --git a/lib/geokit/geocoders/yahoo.rb b/lib/geokit/geocoders/yahoo.rb index c8d850df..648d25d0 100644 --- a/lib/geokit/geocoders/yahoo.rb +++ b/lib/geokit/geocoders/yahoo.rb @@ -4,6 +4,7 @@ module Geocoders # contain a Yahoo API key. Conforms to the interface set by the Geocoder class. class YahooGeocoder < Geocoder config :key, :secret + self.secure = true private def self.submit_url(address) @@ -13,7 +14,7 @@ def self.submit_url(address) o = OauthUtil.new o.consumer_key = key o.consumer_secret = secret - base = "http://yboss.yahooapis.com/geo/placefinder" + base = "#{protocol}://yboss.yahooapis.com/geo/placefinder" parsed_url = URI.parse("#{base}#{query_string}") "#{base}?#{o.sign(parsed_url).query_string}" end diff --git a/lib/geokit/net_adapter/net_http.rb b/lib/geokit/net_adapter/net_http.rb index 88a7ac6d..b4a75559 100644 --- a/lib/geokit/net_adapter/net_http.rb +++ b/lib/geokit/net_adapter/net_http.rb @@ -10,7 +10,13 @@ def self.do_get(url) proxy_uri = URI.parse(proxy_uri_string) net_http_args += [proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password] end - Net::HTTP::new(*net_http_args).start { |http| http.request(req) } + http = Net::HTTP::new(*net_http_args) + if uri.scheme == 'https' + http.use_ssl = true + http.verify_mode = Geokit::Geocoders.ssl_verify_mode + end + http.set_debug_output STDOUT + http.start { |http| http.request(req) } end def self.success?(response) diff --git a/test/test_bing_geocoder.rb b/test/test_bing_geocoder.rb index 520b0d38..e1bfd209 100644 --- a/test/test_bing_geocoder.rb +++ b/test/test_bing_geocoder.rb @@ -16,7 +16,7 @@ def assert_url(expected_url) def test_bing_full_address VCR.use_cassette('bing_full') do key = Geokit::Geocoders::BingGeocoder.key - url = "http://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(@full_address)}?key=#{key}&o=xml" + url = "https://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(@full_address)}?key=#{key}&o=xml" res = Geokit::Geocoders::BingGeocoder.geocode(@full_address) assert_equal "CA", res.state assert_equal "San Francisco", res.city @@ -32,7 +32,7 @@ def test_bing_full_address_au address = '440 King William Street, Adelaide, Australia' VCR.use_cassette('bing_full_au') do key = Geokit::Geocoders::BingGeocoder.key - url = "http://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address)}?key=#{key}&o=xml" + url = "https://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address)}?key=#{key}&o=xml" res = Geokit::Geocoders::BingGeocoder.geocode(address) assert_equal "SA", res.state assert_equal "Adelaide", res.city @@ -49,7 +49,7 @@ def test_bing_full_address_de address = "Platz der Republik 1, 11011 Berlin, Germany" VCR.use_cassette('bing_full_de') do key = Geokit::Geocoders::BingGeocoder.key - url = "http://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address)}?key=#{key}&o=xml" + url = "https://dev.virtualearth.net/REST/v1/Locations/#{URI.escape(address)}?key=#{key}&o=xml" res = Geokit::Geocoders::BingGeocoder.geocode(address) assert_equal "BE", res.state assert_equal "Berlin", res.city diff --git a/test/test_fcc_geocoder.rb b/test/test_fcc_geocoder.rb index a87ca084..d7f0c592 100644 --- a/test/test_fcc_geocoder.rb +++ b/test/test_fcc_geocoder.rb @@ -12,7 +12,7 @@ def assert_url(expected_url) def test_fcc_reverse_geocode VCR.use_cassette('fcc_reverse_geocode') do - url = "http://data.fcc.gov/api/block/find?format=json&latitude=34.05&longitude=-118.25" + url = "https://data.fcc.gov/api/block/find?format=json&latitude=34.05&longitude=-118.25" res = Geokit::Geocoders::FCCGeocoder.reverse_geocode(@la) assert_url url assert_equal res.country_code, 'US' diff --git a/test/test_google_geocoder.rb b/test/test_google_geocoder.rb index c1befada..58f490b1 100644 --- a/test/test_google_geocoder.rb +++ b/test/test_google_geocoder.rb @@ -33,12 +33,19 @@ def test_google_signature_and_url url = Geokit::Geocoders::GoogleGeocoder.send(:submit_url, 'address=New+York') Geokit::Geocoders::GoogleGeocoder.client_id = nil Geokit::Geocoders::GoogleGeocoder.cryptographic_key = nil - assert_equal 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=New+York&client=clientID&signature=9mevp7SoVsSKzF9nj-vApMYbatg=', url + assert_equal 'https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=New+York&client=clientID&signature=9mevp7SoVsSKzF9nj-vApMYbatg=', url + end + + def test_google_insecure_url + Geokit::Geocoders.secure = false + url = Geokit::Geocoders::GoogleGeocoder.send(:submit_url, 'address=New+York') + Geokit::Geocoders.secure = true + assert_equal 'http://maps.google.com/maps/api/geocode/json?sensor=false&address=New+York', url end def test_google_full_address VCR.use_cassette('google_full_short') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode(@address) assert_equal "CA", res.state @@ -52,7 +59,7 @@ def test_google_full_address def test_google_full_address_with_geo_loc VCR.use_cassette('google_full') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode(@google_full_loc) assert_equal "CA", res.state @@ -66,7 +73,7 @@ def test_google_full_address_with_geo_loc def test_google_full_address_accuracy VCR.use_cassette('google_full') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode(@google_full_loc) @@ -76,7 +83,7 @@ def test_google_full_address_accuracy def test_google_city VCR.use_cassette('google_city') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.do_geocode(@address) assert_nil res.street_address @@ -91,7 +98,7 @@ def test_google_city def test_google_city_accuracy VCR.use_cassette('google_city') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode(@address) assert_equal 4, res.accuracy @@ -100,7 +107,7 @@ def test_google_city_accuracy def test_google_city_with_geo_loc VCR.use_cassette('google_city') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode(@google_city_loc) assert_equal "CA", res.state @@ -115,7 +122,7 @@ def test_google_city_with_geo_loc def test_google_suggested_bounds VCR.use_cassette('google_full') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@full_address_short_zip)}" TestHelper.expects(:last_url).with(url) res = Geokit::Geocoders::GoogleGeocoder.geocode(@google_full_loc) assert_instance_of Geokit::Bounds, res.suggested_bounds @@ -129,21 +136,21 @@ def test_google_suggested_bounds_url Geokit::LatLng.new(33.7036917, -118.6681759), Geokit::LatLng.new(34.3373061, -118.1552891) ) - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=Winnetka&bounds=33.7036917%2C-118.6681759%7C34.3373061%2C-118.1552891" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=Winnetka&bounds=33.7036917%2C-118.6681759%7C34.3373061%2C-118.1552891" Geokit::Geocoders::GoogleGeocoder.expects(:call_geocoder_service).with(url) Geokit::Geocoders::GoogleGeocoder.geocode('Winnetka', :bias => bounds) end def test_service_unavailable response = MockFailure.new - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector::url_escape(@address)}" Geokit::Geocoders::GoogleGeocoder.expects(:call_geocoder_service).with(url).returns(response) assert !Geokit::Geocoders::GoogleGeocoder.geocode(@google_city_loc).success end def test_multiple_results VCR.use_cassette('google_multi') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape('via Sandro Pertini 8, Ossona, MI')}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape('via Sandro Pertini 8, Ossona, MI')}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.geocode('via Sandro Pertini 8, Ossona, MI') assert_equal 5, res.all.size @@ -171,7 +178,7 @@ def test_reverse_geocode VCR.use_cassette('google_reverse_madrid') do madrid = Geokit::GeoLoc.new madrid.lat, madrid.lng = "40.4167413", "-3.7032498" - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&latlng=#{Geokit::Inflector::url_escape(madrid.ll)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&latlng=#{Geokit::Inflector::url_escape(madrid.ll)}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::GoogleGeocoder.do_reverse_geocode(madrid.ll) @@ -191,7 +198,7 @@ def test_reverse_geocode def test_reverse_geocode_language VCR.use_cassette('google_reverse_madrid_es') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&latlng=40.416%2C-3.703&language=es" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&latlng=40.416%2C-3.703&language=es" TestHelper.expects(:last_url).with(url) language_result = Geokit::Geocoders::GoogleGeocoder.reverse_geocode('40.416,-3.703', :language => 'es') @@ -202,7 +209,7 @@ def test_reverse_geocode_language def test_country_code_biasing VCR.use_cassette('google_country_code_biased_result') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=Syracuse®ion=it" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=Syracuse®ion=it" TestHelper.expects(:last_url).with(url) biased_result = Geokit::Geocoders::GoogleGeocoder.geocode('Syracuse', :bias => 'it') @@ -213,7 +220,7 @@ def test_country_code_biasing def test_language_response VCR.use_cassette('google_language_response_fr') do - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=Hanoi&language=FR" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=Hanoi&language=FR" TestHelper.expects(:last_url).with(url) language_result = Geokit::Geocoders::GoogleGeocoder.geocode('Hanoi', :language => 'FR') @@ -225,7 +232,7 @@ def test_language_response def test_too_many_queries response = MockSuccess.new response.expects(:body).returns %q/{"status": "OVER_QUERY_LIMIT"}/ - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape(@address)}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape(@address)}" Geokit::Geocoders::GoogleGeocoder.expects(:call_geocoder_service).with(url).returns(response) assert_raise Geokit::Geocoders::TooManyQueriesError do res=Geokit::Geocoders::GoogleGeocoder.geocode(@address) @@ -235,7 +242,7 @@ def test_too_many_queries def test_invalid_request response = MockSuccess.new response.expects(:body).returns %q/{"results" : [], "status" : "INVALID_REQUEST"}/ - url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape("3961 V\u00EDa Marisol")}" + url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=#{Geokit::Inflector.url_escape("3961 V\u00EDa Marisol")}" Geokit::Geocoders::GoogleGeocoder.expects(:call_geocoder_service).with(url).returns(response) assert_raise Geokit::Geocoders::GeocodeError do Geokit::Geocoders::GoogleGeocoder.geocode("3961 V\u00EDa Marisol") diff --git a/test/test_ripe_geocoder.rb b/test/test_ripe_geocoder.rb index 1d7cc68c..cd7b6613 100644 --- a/test/test_ripe_geocoder.rb +++ b/test/test_ripe_geocoder.rb @@ -13,23 +13,23 @@ def assert_url(expected_url) def test_ripe_geocode VCR.use_cassette('ripe_geocode') do - url = "http://stat.ripe.net/data/geoloc/data.json?resource=#{@ip}" - res = Geokit::Geocoders::RipeGeocoder.geocode(@ip) - assert_url url - assert_equal res.city, 'Mountain View' - assert_equal res.state, 'CA' - assert_equal res.country_code, 'US' + url = "http://stat.ripe.net/data/geoloc/data.json?resource=#{@ip}" + res = Geokit::Geocoders::RipeGeocoder.geocode(@ip) + assert_url url + assert_equal res.city, 'Mountain View' + assert_equal res.state, 'CA' + assert_equal res.country_code, 'US' end end def test_ripe_geocode_au VCR.use_cassette('ripe_geocode_au') do - url = "http://stat.ripe.net/data/geoloc/data.json?resource=#{@ip_au}" - res = Geokit::Geocoders::RipeGeocoder.geocode(@ip_au) - assert_url url - assert_equal res.city, 'Adelaide' - assert_equal res.state, nil - assert_equal res.country_code, 'AU' + url = "http://stat.ripe.net/data/geoloc/data.json?resource=#{@ip_au}" + res = Geokit::Geocoders::RipeGeocoder.geocode(@ip_au) + assert_url url + assert_equal res.city, 'Adelaide' + assert_equal res.state, nil + assert_equal res.country_code, 'AU' end end end diff --git a/test/test_yahoo_geocoder.rb b/test/test_yahoo_geocoder.rb index b8da69b3..7e7d01a7 100644 --- a/test/test_yahoo_geocoder.rb +++ b/test/test_yahoo_geocoder.rb @@ -19,7 +19,7 @@ def assert_yahoo_url(expected_url) # the testing methods themselves def test_yahoo_full_address VCR.use_cassette('yahoo_full') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" do_full_address_assertions(Geokit::Geocoders::YahooGeocoder.geocode(@full_address)) assert_yahoo_url url end @@ -27,7 +27,7 @@ def test_yahoo_full_address def test_yahoo_full_address_accuracy VCR.use_cassette('yahoo_full') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" res = Geokit::Geocoders::YahooGeocoder.geocode(@full_address) assert_yahoo_url url assert_equal 8, res.accuracy @@ -36,7 +36,7 @@ def test_yahoo_full_address_accuracy def test_yahoo_full_address_with_geo_loc VCR.use_cassette('yahoo_full') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@full_address)}" do_full_address_assertions(Geokit::Geocoders::YahooGeocoder.geocode(@yahoo_full_loc)) assert_yahoo_url url end @@ -44,7 +44,7 @@ def test_yahoo_full_address_with_geo_loc def test_yahoo_city VCR.use_cassette('yahoo_city') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" do_city_assertions(Geokit::Geocoders::YahooGeocoder.geocode(@address)) assert_yahoo_url url end @@ -52,7 +52,7 @@ def test_yahoo_city def test_yahoo_city_accuracy VCR.use_cassette('yahoo_city') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" res = Geokit::Geocoders::YahooGeocoder.geocode(@address) assert_yahoo_url url assert_equal 4, res.accuracy @@ -61,7 +61,7 @@ def test_yahoo_city_accuracy def test_yahoo_city_with_geo_loc VCR.use_cassette('yahoo_city') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(@address)}" do_city_assertions(Geokit::Geocoders::YahooGeocoder.geocode(@yahoo_city_loc)) assert_yahoo_url url end @@ -73,7 +73,7 @@ def test_no_results no_results_full_loc = Geokit::GeoLoc.new(no_results_full_hash) VCR.use_cassette('yahoo_no_results') do - url = "http://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(no_results_address)}" + url = "https://yboss.yahooapis.com/geo/placefinder?flags=J&q=#{Geokit::Inflector.url_escape(no_results_address)}" result = Geokit::Geocoders::YahooGeocoder.geocode(no_results_address) assert_yahoo_url url assert_equal ",", result.ll