bidi2pdf-rails 0.0.1.pre.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/.idea/.gitignore +8 -0
  3. data/.idea/bidi2pdf-rails.iml +411 -0
  4. data/.idea/inspectionProfiles/profiles_settings.xml +5 -0
  5. data/.idea/misc.xml +4 -0
  6. data/.idea/modules.xml +8 -0
  7. data/.idea/vcs.xml +6 -0
  8. data/.rspec +3 -0
  9. data/.rubocop.yml +90 -0
  10. data/.ruby-gemset +1 -0
  11. data/.ruby-version +1 -0
  12. data/MIT-LICENSE +20 -0
  13. data/README.md +75 -0
  14. data/Rakefile +11 -0
  15. data/lib/bidi2pdf-rails.rb +4 -0
  16. data/lib/bidi2pdf_rails/chromedriver_manager_singleton.rb +69 -0
  17. data/lib/bidi2pdf_rails/log_subscriber.rb +13 -0
  18. data/lib/bidi2pdf_rails/railtie.rb +79 -0
  19. data/lib/bidi2pdf_rails/version.rb +3 -0
  20. data/lib/bidi2pdf_rails.rb +87 -0
  21. data/lib/generators/bidi2pdf_rails/USAGE +8 -0
  22. data/lib/generators/bidi2pdf_rails/initializer_generator.rb +73 -0
  23. data/lib/generators/bidi2pdf_rails/templates/bidi2pdf_rails.rb.tt +89 -0
  24. data/spec/bidi2pdf_rails/bidi2pdf_rails_spec.rb +9 -0
  25. data/spec/dummy/Rakefile +6 -0
  26. data/spec/dummy/app/assets/images/img.jpg +0 -0
  27. data/spec/dummy/app/assets/javascripts/paged.polyfill-4.3.js +33251 -0
  28. data/spec/dummy/app/assets/stylesheets/application.css +1 -0
  29. data/spec/dummy/app/assets/stylesheets/pdf.css +121 -0
  30. data/spec/dummy/app/assets/stylesheets/reset.css +449 -0
  31. data/spec/dummy/app/assets/stylesheets/screen.css +281 -0
  32. data/spec/dummy/app/controllers/application_controller.rb +4 -0
  33. data/spec/dummy/app/controllers/reports_controller.rb +8 -0
  34. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  35. data/spec/dummy/app/helpers/reports_helper.rb +2 -0
  36. data/spec/dummy/app/views/layouts/application.html.erb +67 -0
  37. data/spec/dummy/app/views/layouts/pdf.html.erb +67 -0
  38. data/spec/dummy/app/views/pwa/manifest.json.erb +22 -0
  39. data/spec/dummy/app/views/pwa/service-worker.js +26 -0
  40. data/spec/dummy/app/views/reports/show.html.erb +153 -0
  41. data/spec/dummy/bin/rails +4 -0
  42. data/spec/dummy/bin/rake +4 -0
  43. data/spec/dummy/bin/setup +29 -0
  44. data/spec/dummy/config/application.rb +40 -0
  45. data/spec/dummy/config/boot.rb +5 -0
  46. data/spec/dummy/config/environment.rb +5 -0
  47. data/spec/dummy/config/environments/development.rb +57 -0
  48. data/spec/dummy/config/environments/production.rb +73 -0
  49. data/spec/dummy/config/environments/test.rb +51 -0
  50. data/spec/dummy/config/initializers/bidi2pdf_rails.rb +64 -0
  51. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  52. data/spec/dummy/config/initializers/cors.rb +9 -0
  53. data/spec/dummy/config/initializers/filter_parameter_logging.rb +8 -0
  54. data/spec/dummy/config/initializers/inflections.rb +16 -0
  55. data/spec/dummy/config/initializers/permissions_policy.rb +13 -0
  56. data/spec/dummy/config/locales/en.yml +31 -0
  57. data/spec/dummy/config/puma.rb +34 -0
  58. data/spec/dummy/config/routes.rb +16 -0
  59. data/spec/dummy/config.ru +6 -0
  60. data/spec/dummy/log/development.log +220 -0
  61. data/spec/dummy/public/404.html +67 -0
  62. data/spec/dummy/public/406-unsupported-browser.html +66 -0
  63. data/spec/dummy/public/422.html +67 -0
  64. data/spec/dummy/public/500.html +66 -0
  65. data/spec/dummy/public/icon.png +0 -0
  66. data/spec/dummy/public/icon.svg +3 -0
  67. data/spec/dummy/spec/helpers/reports_helper_spec.rb +15 -0
  68. data/spec/dummy/spec/requests/reports_spec.rb +10 -0
  69. data/spec/dummy/spec/views/reports/show.html.erb_spec.rb +5 -0
  70. data/spec/dummy/storage/test.sqlite3 +0 -0
  71. data/spec/dummy/tmp/README.md +69 -0
  72. data/spec/dummy/tmp/local_secret.txt +1 -0
  73. data/spec/dummy/tmp/pids/server.pid +1 -0
  74. data/spec/dummy/tmp/restart.txt +0 -0
  75. data/spec/generator/bidie2pdf_rails_initializer_generator_spec.rb +5 -0
  76. data/spec/generator/initializer_generator_spec.rb +5 -0
  77. data/spec/rails_helper.rb +60 -0
  78. data/spec/requests/reports_spec.rb +17 -0
  79. data/spec/spec_helper.rb +94 -0
  80. data/tasks/bidi2pdf_rails_tasks.rake +4 -0
  81. metadata +289 -0
@@ -0,0 +1,220 @@
1
+ Initializing Bidi2pdf ChromeDriver manager
2
+ Checking current version
3
+ /Users/fastjack/.webdrivers/chromedriver is already downloaded
4
+ making System call: ["/Users/fastjack/.webdrivers/chromedriver", "--version"]
5
+ System call returned: ChromeDriver 135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836})
6
+
7
+ Current version of /Users/fastjack/.webdrivers/chromedriver is ChromeDriver 135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836})
8
+
9
+ making System call: ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", "--version"]
10
+ System call returned: Google Chrome 135.0.7049.85
11
+
12
+ Browser version: Google Chrome 135.0.7049.85
13
+ Checking current version
14
+ /Users/fastjack/.webdrivers/chromedriver is already downloaded
15
+ making System call: ["/Users/fastjack/.webdrivers/chromedriver", "--version"]
16
+ System call returned: ChromeDriver 135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836})
17
+
18
+ Current version of /Users/fastjack/.webdrivers/chromedriver is ChromeDriver 135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836})
19
+
20
+ Starting download from: https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json
21
+ No proxy is being used.
22
+ Sending HTTP GET request...
23
+ making System call: ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", "--version"]
24
+ System call returned: Google Chrome 135.0.7049.85
25
+
26
+ Browser version: Google Chrome 135.0.7049.85
27
+ A working webdriver version is already on the system
28
+ [bidi2pdf] Starting Chromedriver with command: /Users/fastjack/.webdrivers/chromedriver --user-data-dir /var/folders/pk/6c774xdj36q3l1w84s0c58r40000gp/T/bidi2pdf/user_data/cce86dc44777c1d2
29
+ [bidi2pdf] [D1] Starting ChromeDriver 135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836}) on port 0
30
+ [bidi2pdf] [D1] Only local connections are allowed.
31
+ [bidi2pdf] [D1] Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
32
+ [bidi2pdf] [D1] ChromeDriver was started successfully on port 51221.
33
+ [bidi2pdf] Found port: 51221 setup port: 0
34
+ [bidi2pdf] Started Chromedriver on port 51221, PID 61713
35
+ [bidi2pdf] Session data: {"value"=>{"capabilities"=>{"acceptInsecureCerts"=>true, "browserName"=>"chrome", "browserVersion"=>"135.0.7049.85", "chrome"=>{"chromedriverVersion"=>"135.0.7049.95 (de2eb485a1951079e63bdb57ce25544d2dc79c15-refs/branch-heads/7049@{#1836})", "userDataDir"=>"/var/folders/pk/6c774xdj36q3l1w84s0c58r40000gp/T/.org.chromium.Chromium.dFip9R"}, "fedcm:accounts"=>true, "goog:chromeOptions"=>{"debuggerAddress"=>"localhost:51224"}, "networkConnectionEnabled"=>false, "pageLoadStrategy"=>"normal", "platformName"=>"mac", "proxy"=>{}, "setWindowRect"=>true, "strictFileInteractability"=>false, "timeouts"=>{"implicit"=>0, "pageLoad"=>300000, "script"=>30000}, "unhandledPromptBehavior"=>{"default"=>"ignore"}, "webSocketUrl"=>"ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", "webauthn:extension:credBlob"=>true, "webauthn:extension:largeBlob"=>true, "webauthn:extension:minPinLength"=>true, "webauthn:extension:prf"=>true, "webauthn:virtualAuthenticators"=>true}, "sessionId"=>"e27f729b45d54ed1975d511ede180a73"}}
36
+ [bidi2pdf] Created session with ID: e27f729b45d54ed1975d511ede180a73
37
+ [bidi2pdf] WebSocket URL: ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73
38
+ [bidi2pdf] Registering WebSocket event listeners
39
+ [bidi2pdf] WebSocket connection is open
40
+ Started GET "/reports/1.pdf" for 127.0.0.1 at 2025-04-16 19:25:35 +0200
41
+ Processing by ReportsController#show as PDF
42
+ Parameters: {"id"=>"1"}
43
+ Rendering layout layouts/pdf.html.erb
44
+ Rendering reports/show.html.erb within layouts/pdf
45
+ Rendered reports/show.html.erb within layouts/pdf (Duration: 9.2ms | GC: 0.0ms)
46
+ Rendered layout layouts/pdf.html.erb (Duration: 37.1ms | GC: 9.1ms)
47
+ [bidi2pdf] Subscribing to events
48
+ [bidi2pdf] Registering WebSocket event listeners
49
+ [bidi2pdf] Waiting for WebSocket connection to open
50
+ [bidi2pdf] WebSocket connection is open
51
+ [bidi2pdf_rails] Sending command: session.subscribe id: #1
52
+ [bidi2pdf_rails] Sending command: {:id=>1, :method=>"session.subscribe", :params=>{:events=>["script"]}} (1.4ms)
53
+ [bidi2pdf_rails] Sending command: browser.createUserContext id: #2
54
+ [bidi2pdf_rails] Sending command: {:id=>2, :method=>"browser.createUserContext", :params=>{}} (0.5ms)
55
+ [bidi2pdf] Received event: script.realmCreated, params: {"context"=>"BD0CD2EDEE996AB633B7C0B9B4C2EDCA", "origin"=>"null", "realm"=>"1834588534454500526.-4444472165698353088", "type"=>"window"}
56
+ [bidi2pdf] User context created: "9764D645F9DD58ECAFD1FD645AAD7567"
57
+ [bidi2pdf_rails] Sending command: browsingContext.create id: #3
58
+ [bidi2pdf_rails] Sending command: {:id=>3, :method=>"browsingContext.create", :params=>{:type=>"window", :userContext=>"9764D645F9DD58ECAFD1FD645AAD7567", :background=>false}} (0.4ms)
59
+ [bidi2pdf] Received event: script.realmCreated, params: {"context"=>"181F29B414939C48670D1FE04EE23264", "origin"=>"null", "realm"=>"-7958152185205769160.1249985753951628907", "type"=>"window"}
60
+ [bidi2pdf_rails] Sending command: browsingContext.create id: #4
61
+ [bidi2pdf_rails] Sending command: {:id=>4, :method=>"browsingContext.create", :params=>{:type=>"tab", :userContext=>"9764D645F9DD58ECAFD1FD645AAD7567", :background=>false}} (0.1ms)
62
+ [bidi2pdf] Received event: script.realmCreated, params: {"context"=>"B4C3F2349A2375F87C3016CCA88CC140", "origin"=>"null", "realm"=>"1602220234011831552.-3506062164878947619", "type"=>"window"}
63
+ [bidi2pdf] [D1] Created new browser tab: #<Bidi2pdf::Bidi::BrowserTab:0x0000000125c53020 @client=#<Bidi2pdf::Bidi::Client:0x0000000125e5e068 @ws_url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @started=true, @connection_manager=#<Bidi2pdf::Bidi::ConnectionManager:0x0000000125e5dfa0 @logger=#<ActiveSupport::Logger:0x00000001257d98f0 @level=0, @progname=nil, @default_formatter=#<Logger::Formatter:0x00000001255d0090 @datetime_format=nil>, @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x00000001254315b8 @datetime_format=nil, @thread_key="activesupport_tagged_logging_tags:6960", @tag_stack=#<ActiveSupport::TaggedLogging::TagStack:0x0000000125431400 @tags=["bidi2pdf"], @tags_string=nil>>, @logdev=#<Logger::LogDevice:0x0000000125024ec0 @shift_period_suffix="%Y%m%d", @shift_size=104857600, @shift_age=1, @filename="/Users/fastjack/sources/ruby/bidi2pdf-rails/spec/dummy/log/development.log", @dev=#<File:/Users/fastjack/sources/ruby/bidi2pdf-rails/spec/dummy/log/development.log>, @binmode=false, @reraise_write_errors=[], @skip_header=false, @mon_data=#<Monitor:0x000000012573ff48>, @mon_data_owner_object_id=4760>, @level_override={}, @local_level_key=:logger_thread_safe_level_7460>, @connected=true, @connection_queue=#<Thread::Queue:0x0000000125e5df00>>, @socket=#<WebSocket::Client::Simple::Client:0x0000000125e5dd98 @__events=[{:type=>:open, :listener=>#<Proc:0x0000000125e5d5f0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:66>, :params=>{}, :id=>0}, {:type=>:close, :listener=>#<Proc:0x0000000125e5d5c8 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:67>, :params=>{}, :id=>1}, {:type=>:error, :listener=>#<Proc:0x0000000125e5d5a0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:68>, :params=>{}, :id=>2}, {:type=>:message, :listener=>#<Proc:0x0000000125e5d528 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:50>, :params=>{}, :id=>3}, {:type=>:__close, :listener=>#<Proc:0x0000000125e75768 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:40>, :params=>{:once=>true}, :id=>4}], @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @socket=#<TCPSocket:fd 10, AF_INET6, ::1, 51233>, @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 ...>, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @key="LnZGhwARRpt0fTGY9yYIdw==">, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @handshaked=true, @pipe_broken=false, @closed=false, @thread=#<Thread:0x0000000125e75718 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:45 sleep>>, @command_manager=#<Bidi2pdf::Bidi::CommandManager:0x0000000125e5dcd0 @socket=#<WebSocket::Client::Simple::Client:0x0000000125e5dd98 @__events=[{:type=>:open, :listener=>#<Proc:0x0000000125e5d5f0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:66>, :params=>{}, :id=>0}, {:type=>:close, :listener=>#<Proc:0x0000000125e5d5c8 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:67>, :params=>{}, :id=>1}, {:type=>:error, :listener=>#<Proc:0x0000000125e5d5a0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:68>, :params=>{}, :id=>2}, {:type=>:message, :listener=>#<Proc:0x0000000125e5d528 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:50>, :params=>{}, :id=>3}, {:type=>:__close, :listener=>#<Proc:0x0000000125e75768 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:40>, :params=>{:once=>true}, :id=>4}], @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @socket=#<TCPSocket:fd 10, AF_INET6, ::1, 51233>, @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 ...>, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @key="LnZGhwARRpt0fTGY9yYIdw==">, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @handshaked=true, @pipe_broken=false, @closed=false, @thread=#<Thread:0x0000000125e75718 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:45 sleep>>, @pending_responses={}, @initiated_cmds={}>, @dispatcher=#<Bidi2pdf::Bidi::WebSocketDispatcher:0x0000000125e5dc08 @socket=#<WebSocket::Client::Simple::Client:0x0000000125e5dd98 @__events=[{:type=>:open, :listener=>#<Proc:0x0000000125e5d5f0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:66>, :params=>{}, :id=>0}, {:type=>:close, :listener=>#<Proc:0x0000000125e5d5c8 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:67>, :params=>{}, :id=>1}, {:type=>:error, :listener=>#<Proc:0x0000000125e5d5a0 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:68>, :params=>{}, :id=>2}, {:type=>:message, :listener=>#<Proc:0x0000000125e5d528 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/web_socket_dispatcher.rb:50>, :params=>{}, :id=>3}, {:type=>:__close, :listener=>#<Proc:0x0000000125e75768 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:40>, :params=>{:once=>true}, :id=>4}], @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @socket=#<TCPSocket:fd 10, AF_INET6, ::1, 51233>, @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 @handshake=<WebSocket::Handshake::Client:0x0000224c @url="ws://localhost:51221/session/e27f729b45d54ed1975d511ede180a73", @headers={"upgrade"=>"WebSocket", "connection"=>"Upgrade", "sec-websocket-accept"=>"BDa1YfhR797MxqGR2jV1p8OCNfg="}, @state=:finished, @handler=#<WebSocket::Handshake::Handler::Client11:0x0000000125e51868 ...>, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @key="LnZGhwARRpt0fTGY9yYIdw==">, @data="HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: BDa1YfhR797MxqGR2jV1p8OCNfg=\r\n\r\n", @protocols=[], @secure=false, @host="localhost", @port=51221, @path="/session/e27f729b45d54ed1975d511ede180a73", @query=nil, @version=13, @leftovers="">, @handshaked=true, @pipe_broken=false, @closed=false, @thread=#<Thread:0x0000000125e75718 /Users/fastjack/.rvm/gems/ruby-3.3.4@bidi2pdf-rails/gems/websocket-client-simple-0.9.0/lib/websocket-client-simple/client.rb:45 sleep>>, @socket_events=#<Bidi2pdf::Bidi::EventManager:0x0000000125e5db68 @listeners={:open=>[#<Proc:0x0000000125e5d8e8 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/client.rb:55>], :message=>[#<Proc:0x0000000125e5d848 /Users/fastjack/sources/ruby/bidi2pdf/lib/bidi2pdf/bidi/client.rb:56>], :close=>[#<Proc:0x0000000125e74ac0 /Users/fastjack/sources/ruby/bidi2pdf-rails/lib/bidi2pdf_rails/chromedriver_manager_singleton.rb:36>]}, @type="socket-event">, @session_events=#<Bidi2pdf::Bidi::EventManager:0x0000000125e5da78 @listeners={}, @type="session-event">>>, @browsing_context_id="B4C3F2349A2375F87C3016CCA88CC140", @user_context_id="9764D645F9DD58ECAFD1FD645AAD7567", @tabs=[], @network_events=#<Bidi2pdf::Bidi::NetworkEvents:0x0000000125e730a8 @context_id="B4C3F2349A2375F87C3016CCA88CC140", @events={}, @network_event_formatter=#<Bidi2pdf::Bidi::NetworkEventFormatters::NetworkEventConsoleFormatter:0x0000000125e73080 @color_enabled=true>>, @logger_events=#<Bidi2pdf::Bidi::LoggerEvents:0x0000000125e73058 @context_id="B4C3F2349A2375F87C3016CCA88CC140">, @open=true>
64
+ [bidi2pdf_rails] Sending command: session.subscribe id: #5
65
+ [bidi2pdf_rails] Sending command: {:id=>5, :method=>"session.subscribe", :params=>{:events=>["network.beforeRequestSent", "network.responseStarted", "network.responseCompleted", "network.fetchError"]}} (0.2ms)
66
+ [bidi2pdf_rails] Sending command: session.subscribe id: #6
67
+ [bidi2pdf_rails] Sending command: {:id=>6, :method=>"session.subscribe", :params=>{:events=>["log.entryAdded"]}} (0.1ms)
68
+ [bidi2pdf_rails] Sending command: browsingContext.navigate id: #7
69
+ [bidi2pdf_rails] Sending command: {:id=>7, :method=>"browsingContext.navigate", :params=>{:url=>"data:text/html;charset=utf-8;base64,PCEtLSBCRUdJTiBhcHAvdmlld3MvbGF5b3V0cy9wZGYuaHRtbC5lcmIgLS0+PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+RHVtbXk8L3RpdGxlPgogIAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgogIDxtZXRhIG5hbWU9ImNzcmYtcGFyYW0iIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgLz4KPG1ldGEgbmFtZT0iY3NyZi10b2tlbiIgY29udGVudD0iWVhwWWhIRjY3R1l2X3pJXzMzVVg2Rml0V09jS0d1WnlCQUFSOWhZQ2JtY1EwbHZVVXlYMkdhdDJ2NzhYQzljZHAxNDN1cTJ3c1YtWGZ1b0RlX2tDeGciIC8+CiAgCgogIAoKICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFuaWZlc3QuanNvbiI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL2ljb24ucG5nIj4KCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL3N0eWxlc2hlZXRzL3Jlc2V0LWU0YmYyM2FjLmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvc2NyZWVuLThjZDcyZmY1LmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvcGRmLWMxYTY5Njk0LmNzcyIgLz4KCiAgPHNjcmlwdD4KICAgICAgd2luZG93LmxvYWRlZCA9IGZhbHNlOyAvLyBtYWtlIGl0IGdsb2JhbAoKICAgICAgd2luZG93LlBhZ2VkQ29uZmlnID0gewogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhZnRlcjogKGZsb3cpID0+IHsgIH0sCiAgICAgIH07CgogICAgICBmdW5jdGlvbiBpbml0UGFnZWQoKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiUGFnZWQgbGlicmFyeSBpcyByZWFkeSIpOwogICAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIFBhZ2VkIGhhbmRsZXJzIGhlcmUKCiAgICAgICAgICBjbGFzcyBQYWdlSnNSZWFkeUhhbmRsZXIgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHsKICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7CiAgICAgICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgYWZ0ZXJSZW5kZXJlZChwYWdlcykgewogICAgICAgICAgICAgICAgICB3aW5kb3cubG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCLinIUgUGFnZWQuanMgaGFzIHJlbmRlcmVkIGV2ZXJ5dGhpbmchIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIFBhZ2VkLnJlZ2lzdGVySGFuZGxlcnMoUGFnZUpzUmVhZHlIYW5kbGVyKTsKCiAgICAgICAgICB3aW5kb3cuUGFnZWRQb2x5ZmlsbC5wcmV2aWV3KCk7CiAgICAgIH0KICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvamF2YXNjcmlwdHMvcGFnZWQucG9seWZpbGwtNC4zLWRmZjljMTJjLmpzIiBhc3luYz0iYXN5bmMiIG9ubG9hZD0iaW5pdFBhZ2VkKCkiPjwvc2NyaXB0PgoKICA8IS0tIE5vIEZhdmljb24gLS0+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOiwiPgoKICA8bGluawogICAgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiCiAgICByZWw9InN0eWxlc2hlZXQiCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIgogICAgLz4KCjwvaGVhZD4KCjxib2R5Pgo8IS0tIEJFR0lOIGFwcC92aWV3cy9yZXBvcnRzL3Nob3cuaHRtbC5lcmIgLS0+PGhlYWRlciBjbGFzcz0icGFnZS1oZWFkZXIiPgogIDxoMT5QREYgUmVuZGVyaW5nIFNhbXBsZTwvaDE+CiAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlN0eWxlZCB3aXRoIEJvb3RzdHJhcCAmYW1wOyBjdXN0b20gQ1NTPC9wPgo8L2hlYWRlcj4KPCEtLSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IGhhcyB0byBiZSBwbGFjZWQgaGVyZSAtLT4KPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIgdGV4dC1jZW50ZXIiPgogIDxwIGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIj5HZW5lcmF0ZWQgd2l0aCDinaTvuI8gYnkgQmlkaTJQREYg4oCTIFBhZ2UgPC9wPgo8L2Zvb3Rlcj4KCgo8bWFpbiBjbGFzcz0icGFnZS1jb250ZW50IGNvbnRhaW5lciBtdC00Ij4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIE9uZTwvaDI+CiAgICA8cD5UaGlzIGlzIHRoZSBmaXJzdCBwYWdlLiBBZGQgZW5vdWdoIHRleHQgaGVyZSB0byBwdXNoIHRvIHRoZSBuZXh0IHBhZ2UuPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uPC9wPgogICAgPHA+VmVzdGlidWx1bSBxdWlzIHZlbGl0IGF0IGF1Z3VlIHRpbmNpZHVudCBlZ2VzdGFzLiBJbnRlZ2VyIG5vbiBkb2xvciBhIG5pc2wgY29uc2VxdWF0IGdyYXZpZGEuIFNlZCB2aXRhZQogICAgICBmZXJtZW50dW0gc2FwaWVuLiBTdXNwZW5kaXNzZSBwb3RlbnRpLjwvcD4KICAgIDxwIGNsYXNzPSJicmVhay1hZnRlciI+PC9wPgogIDwvc2VjdGlvbj4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIFR3byAoTmV3IFBhZ2UpPC9oMj4KICAgIDxwPlRoaXMgY29udGVudCBhcHBlYXJzIG9uIGEgc2Vjb25kIHBhZ2UuPC9wPgoKICAgIDxoMz5TYW1wbGUgVGFibGU8L2gzPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ib3JkZXJlZCI+CiAgICAgIDx0aGVhZCBjbGFzcz0idGFibGUtbGlnaHQiPgogICAgICA8dHI+CiAgICAgICAgPHRoPiM8L3RoPgogICAgICAgIDx0aD5JdGVtPC90aD4KICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgIDx0aD5RdHk8L3RoPgogICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPldpZGdldCBBPC90ZD4KICAgICAgICA8dGQ+SGlnaC1xdWFsaXR5IHdpZGdldDwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5XaWRnZXQgQjwvdGQ+CiAgICAgICAgPHRkPkR1cmFibGUgd2lkZ2V0IGZvciBsb25nLXRlcm0gdXNlPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MzwvdGQ+CiAgICAgICAgPHRkPkdhZGdldCBDPC90ZD4KICAgICAgICA8dGQ+R3JlYXQgZm9yIHByb2R1Y3Rpdml0eTwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICAgIDx0ZD5UaGluZ2FtYWppZyBEPC90ZD4KICAgICAgICA8dGQ+RXNzZW50aWFsIHRoaW5neTwvdGQ+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjU8L3RkPgogICAgICAgIDx0ZD5XaGF0Y2hhbWFjYWxsaXQgRTwvdGQ+CiAgICAgICAgPHRkPk15c3RlcmlvdXMgYW5kIHVzZWZ1bDwvdGQ+CiAgICAgICAgPHRkPjE8L3RkPgogICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0LXN0YXJ0Ij4KICAgICAgPGltZyBjbGFzcz0iaW1nLWZsdWlkIG15LTMgbWUtMyIgc3R5bGU9Im1heC13aWR0aDoxMGNtOyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL2ltYWdlcy9pbWctNDFmYWFlNjUuanBnIiAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZmxvYXQtZW5kIj4KICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuPC9wPgogICAgICA8cD5WZXN0aWJ1bHVtIHF1aXMgdmVsaXQgYXQgYXVndWUgdGluY2lkdW50IGVnZXN0YXMuPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgoKICAgIDxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIGJvcmRlci1zdGFydCBib3JkZXItcHJpbWFyeSBwcy0zIG15LTQiPgogICAgICA8cD4iR29vZCBkZXNpZ24gaXMgb2J2aW91cy4gR3JlYXQgZGVzaWduIGlzIHRyYW5zcGFyZW50LiI8L3A+CiAgICAgIDxmb290ZXIgY2xhc3M9ImJsb2NrcXVvdGUtZm9vdGVyIj5Kb2UgU3BhcmFubzwvZm9vdGVyPgogICAgPC9ibG9ja3F1b3RlPgoKICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXktNCIgcm9sZT0iYWxlcnQiPgogICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZG9jdW1lbnQgZGVtb25zdHJhdGVzIGFkdmFuY2VkIHBhZ2luYXRpb24gd2l0aCBIVE1MIGFuZCBDU1MuCiAgICA8L2Rpdj4KCiAgICA8c3ZnIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGNsYXNzPSJteS00Ij4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9IiNmM2YzZjMiLz4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9InRyYW5zcGFyZW50IgogICAgICAgICAgICAgIHN0cm9rZT0iIzRhOTBlMiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWRhc2hhcnJheT0iNzUgMjUiCiAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoLTMyKSIvPgogICAgICA8dGV4dCB4PSIxNiIgeT0iMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMzMzMiIGZvbnQtc2l6ZT0iNSI+NzUlPC90ZXh0PgogICAgPC9zdmc+CgogICAgPGRpdiBjbGFzcz0icm93IG15LTQiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBPbmU8L2g0PgogICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBUd288L2g0PgogICAgICAgIDxwPlN1c3BlbmRpc3NlIHBvdGVudGkuIE51bGxhbSBlZ2V0IG5lcXVlIGlkIHNlbSBsYW9yZWV0IGNvbnZhbGxpcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgPC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzaWduYXR1cmUtc2VjdGlvbiBteS01IHB0LTUgdGV4dC1jZW50ZXIiPgogICAgPHA+UHJlcGFyZWQgYnk6PC9wPgogICAgPHA+PHN0cm9uZz5Zb3VyIE5hbWUgb3IgQ29tcGFueTwvc3Ryb25nPjwvcD4KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10b3Agdy0yNSBteC1hdXRvIG15LTIiPjwvZGl2PgogICAgPHAgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQiPlNpZ25hdHVyZTwvcD4KICA8L3NlY3Rpb24+CjwvbWFpbj4KCgo8IS0tIEVORCBhcHAvdmlld3MvcmVwb3J0cy9zaG93Lmh0bWwuZXJiIC0tPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFTkQgYXBwL3ZpZXdzL2xheW91dHMvcGRmLmh0bWwuZXJiIC0tPg==", :context=>"B4C3F2349A2375F87C3016CCA88CC140", :wait=>"complete"}} (3.6ms)
70
+ [bidi2pdf] Received event: script.realmDestroyed, params: {"realm"=>"1602220234011831552.-3506062164878947619"}
71
+ [bidi2pdf_rails] [D2] Request url 'data:text/html;charset=utf-8;base64,PCEtLSBCRUdJTiBhcHAvdmlld3MvbGF5b3V0cy9wZGYuaHRtbC5lcmIgLS0+PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+RHVtbXk8L3RpdGxlPgogIAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgogIDxtZXRhIG5hbWU9ImNzcmYtcGFyYW0iIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgLz4KPG1ldGEgbmFtZT0iY3NyZi10b2tlbiIgY29udGVudD0iWVhwWWhIRjY3R1l2X3pJXzMzVVg2Rml0V09jS0d1WnlCQUFSOWhZQ2JtY1EwbHZVVXlYMkdhdDJ2NzhYQzljZHAxNDN1cTJ3c1YtWGZ1b0RlX2tDeGciIC8+CiAgCgogIAoKICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFuaWZlc3QuanNvbiI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL2ljb24ucG5nIj4KCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL3N0eWxlc2hlZXRzL3Jlc2V0LWU0YmYyM2FjLmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvc2NyZWVuLThjZDcyZmY1LmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvcGRmLWMxYTY5Njk0LmNzcyIgLz4KCiAgPHNjcmlwdD4KICAgICAgd2luZG93LmxvYWRlZCA9IGZhbHNlOyAvLyBtYWtlIGl0IGdsb2JhbAoKICAgICAgd2luZG93LlBhZ2VkQ29uZmlnID0gewogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhZnRlcjogKGZsb3cpID0+IHsgIH0sCiAgICAgIH07CgogICAgICBmdW5jdGlvbiBpbml0UGFnZWQoKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiUGFnZWQgbGlicmFyeSBpcyByZWFkeSIpOwogICAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIFBhZ2VkIGhhbmRsZXJzIGhlcmUKCiAgICAgICAgICBjbGFzcyBQYWdlSnNSZWFkeUhhbmRsZXIgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHsKICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7CiAgICAgICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgYWZ0ZXJSZW5kZXJlZChwYWdlcykgewogICAgICAgICAgICAgICAgICB3aW5kb3cubG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCLinIUgUGFnZWQuanMgaGFzIHJlbmRlcmVkIGV2ZXJ5dGhpbmchIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIFBhZ2VkLnJlZ2lzdGVySGFuZGxlcnMoUGFnZUpzUmVhZHlIYW5kbGVyKTsKCiAgICAgICAgICB3aW5kb3cuUGFnZWRQb2x5ZmlsbC5wcmV2aWV3KCk7CiAgICAgIH0KICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvamF2YXNjcmlwdHMvcGFnZWQucG9seWZpbGwtNC4zLWRmZjljMTJjLmpzIiBhc3luYz0iYXN5bmMiIG9ubG9hZD0iaW5pdFBhZ2VkKCkiPjwvc2NyaXB0PgoKICA8IS0tIE5vIEZhdmljb24gLS0+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOiwiPgoKICA8bGluawogICAgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiCiAgICByZWw9InN0eWxlc2hlZXQiCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIgogICAgLz4KCjwvaGVhZD4KCjxib2R5Pgo8IS0tIEJFR0lOIGFwcC92aWV3cy9yZXBvcnRzL3Nob3cuaHRtbC5lcmIgLS0+PGhlYWRlciBjbGFzcz0icGFnZS1oZWFkZXIiPgogIDxoMT5QREYgUmVuZGVyaW5nIFNhbXBsZTwvaDE+CiAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlN0eWxlZCB3aXRoIEJvb3RzdHJhcCAmYW1wOyBjdXN0b20gQ1NTPC9wPgo8L2hlYWRlcj4KPCEtLSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IGhhcyB0byBiZSBwbGFjZWQgaGVyZSAtLT4KPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIgdGV4dC1jZW50ZXIiPgogIDxwIGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIj5HZW5lcmF0ZWQgd2l0aCDinaTvuI8gYnkgQmlkaTJQREYg4oCTIFBhZ2UgPC9wPgo8L2Zvb3Rlcj4KCgo8bWFpbiBjbGFzcz0icGFnZS1jb250ZW50IGNvbnRhaW5lciBtdC00Ij4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIE9uZTwvaDI+CiAgICA8cD5UaGlzIGlzIHRoZSBmaXJzdCBwYWdlLiBBZGQgZW5vdWdoIHRleHQgaGVyZSB0byBwdXNoIHRvIHRoZSBuZXh0IHBhZ2UuPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uPC9wPgogICAgPHA+VmVzdGlidWx1bSBxdWlzIHZlbGl0IGF0IGF1Z3VlIHRpbmNpZHVudCBlZ2VzdGFzLiBJbnRlZ2VyIG5vbiBkb2xvciBhIG5pc2wgY29uc2VxdWF0IGdyYXZpZGEuIFNlZCB2aXRhZQogICAgICBmZXJtZW50dW0gc2FwaWVuLiBTdXNwZW5kaXNzZSBwb3RlbnRpLjwvcD4KICAgIDxwIGNsYXNzPSJicmVhay1hZnRlciI+PC9wPgogIDwvc2VjdGlvbj4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIFR3byAoTmV3IFBhZ2UpPC9oMj4KICAgIDxwPlRoaXMgY29udGVudCBhcHBlYXJzIG9uIGEgc2Vjb25kIHBhZ2UuPC9wPgoKICAgIDxoMz5TYW1wbGUgVGFibGU8L2gzPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ib3JkZXJlZCI+CiAgICAgIDx0aGVhZCBjbGFzcz0idGFibGUtbGlnaHQiPgogICAgICA8dHI+CiAgICAgICAgPHRoPiM8L3RoPgogICAgICAgIDx0aD5JdGVtPC90aD4KICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgIDx0aD5RdHk8L3RoPgogICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPldpZGdldCBBPC90ZD4KICAgICAgICA8dGQ+SGlnaC1xdWFsaXR5IHdpZGdldDwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5XaWRnZXQgQjwvdGQ+CiAgICAgICAgPHRkPkR1cmFibGUgd2lkZ2V0IGZvciBsb25nLXRlcm0gdXNlPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MzwvdGQ+CiAgICAgICAgPHRkPkdhZGdldCBDPC90ZD4KICAgICAgICA8dGQ+R3JlYXQgZm9yIHByb2R1Y3Rpdml0eTwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICAgIDx0ZD5UaGluZ2FtYWppZyBEPC90ZD4KICAgICAgICA8dGQ+RXNzZW50aWFsIHRoaW5neTwvdGQ+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjU8L3RkPgogICAgICAgIDx0ZD5XaGF0Y2hhbWFjYWxsaXQgRTwvdGQ+CiAgICAgICAgPHRkPk15c3RlcmlvdXMgYW5kIHVzZWZ1bDwvdGQ+CiAgICAgICAgPHRkPjE8L3RkPgogICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0LXN0YXJ0Ij4KICAgICAgPGltZyBjbGFzcz0iaW1nLWZsdWlkIG15LTMgbWUtMyIgc3R5bGU9Im1heC13aWR0aDoxMGNtOyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL2ltYWdlcy9pbWctNDFmYWFlNjUuanBnIiAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZmxvYXQtZW5kIj4KICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuPC9wPgogICAgICA8cD5WZXN0aWJ1bHVtIHF1aXMgdmVsaXQgYXQgYXVndWUgdGluY2lkdW50IGVnZXN0YXMuPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgoKICAgIDxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIGJvcmRlci1zdGFydCBib3JkZXItcHJpbWFyeSBwcy0zIG15LTQiPgogICAgICA8cD4iR29vZCBkZXNpZ24gaXMgb2J2aW91cy4gR3JlYXQgZGVzaWduIGlzIHRyYW5zcGFyZW50LiI8L3A+CiAgICAgIDxmb290ZXIgY2xhc3M9ImJsb2NrcXVvdGUtZm9vdGVyIj5Kb2UgU3BhcmFubzwvZm9vdGVyPgogICAgPC9ibG9ja3F1b3RlPgoKICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXktNCIgcm9sZT0iYWxlcnQiPgogICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZG9jdW1lbnQgZGVtb25zdHJhdGVzIGFkdmFuY2VkIHBhZ2luYXRpb24gd2l0aCBIVE1MIGFuZCBDU1MuCiAgICA8L2Rpdj4KCiAgICA8c3ZnIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGNsYXNzPSJteS00Ij4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9IiNmM2YzZjMiLz4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9InRyYW5zcGFyZW50IgogICAgICAgICAgICAgIHN0cm9rZT0iIzRhOTBlMiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWRhc2hhcnJheT0iNzUgMjUiCiAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoLTMyKSIvPgogICAgICA8dGV4dCB4PSIxNiIgeT0iMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMzMzMiIGZvbnQtc2l6ZT0iNSI+NzUlPC90ZXh0PgogICAgPC9zdmc+CgogICAgPGRpdiBjbGFzcz0icm93IG15LTQiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBPbmU8L2g0PgogICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBUd288L2g0PgogICAgICAgIDxwPlN1c3BlbmRpc3NlIHBvdGVudGkuIE51bGxhbSBlZ2V0IG5lcXVlIGlkIHNlbSBsYW9yZWV0IGNvbnZhbGxpcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgPC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzaWduYXR1cmUtc2VjdGlvbiBteS01IHB0LTUgdGV4dC1jZW50ZXIiPgogICAgPHA+UHJlcGFyZWQgYnk6PC9wPgogICAgPHA+PHN0cm9uZz5Zb3VyIE5hbWUgb3IgQ29tcGFueTwvc3Ryb25nPjwvcD4KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10b3Agdy0yNSBteC1hdXRvIG15LTIiPjwvZGl2PgogICAgPHAgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQiPlNpZ25hdHVyZTwvcD4KICA8L3NlY3Rpb24+CjwvbWFpbj4KCgo8IS0tIEVORCBhcHAvdmlld3MvcmVwb3J0cy9zaG93Lmh0bWwuZXJiIC0tPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFTkQgYXBwL3ZpZXdzL2xheW91dHMvcGRmLmh0bWwuZXJiIC0tPg==' started
72
+ [bidi2pdf] Received event: script.realmCreated, params: {"context"=>"B4C3F2349A2375F87C3016CCA88CC140", "origin"=>"null", "realm"=>"-2963794492502683917.-5382393100277723950", "type"=>"window"}
73
+ Started GET "/assets/stylesheets/reset-e4bf23ac.css" for 127.0.0.1 at 2025-04-16 19:25:36 +0200
74
+ Started GET "/assets/stylesheets/screen-8cd72ff5.css" for 127.0.0.1 at 2025-04-16 19:25:36 +0200
75
+ [bidi2pdf_rails] [D2] Request url 'data:text/html;charset=utf-8;base64,PCEtLSBCRUdJTiBhcHAvdmlld3MvbGF5b3V0cy9wZGYuaHRtbC5lcmIgLS0+PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+RHVtbXk8L3RpdGxlPgogIAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgogIDxtZXRhIG5hbWU9ImNzcmYtcGFyYW0iIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgLz4KPG1ldGEgbmFtZT0iY3NyZi10b2tlbiIgY29udGVudD0iWVhwWWhIRjY3R1l2X3pJXzMzVVg2Rml0V09jS0d1WnlCQUFSOWhZQ2JtY1EwbHZVVXlYMkdhdDJ2NzhYQzljZHAxNDN1cTJ3c1YtWGZ1b0RlX2tDeGciIC8+CiAgCgogIAoKICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFuaWZlc3QuanNvbiI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL2ljb24ucG5nIj4KCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL3N0eWxlc2hlZXRzL3Jlc2V0LWU0YmYyM2FjLmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvc2NyZWVuLThjZDcyZmY1LmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvcGRmLWMxYTY5Njk0LmNzcyIgLz4KCiAgPHNjcmlwdD4KICAgICAgd2luZG93LmxvYWRlZCA9IGZhbHNlOyAvLyBtYWtlIGl0IGdsb2JhbAoKICAgICAgd2luZG93LlBhZ2VkQ29uZmlnID0gewogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhZnRlcjogKGZsb3cpID0+IHsgIH0sCiAgICAgIH07CgogICAgICBmdW5jdGlvbiBpbml0UGFnZWQoKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiUGFnZWQgbGlicmFyeSBpcyByZWFkeSIpOwogICAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIFBhZ2VkIGhhbmRsZXJzIGhlcmUKCiAgICAgICAgICBjbGFzcyBQYWdlSnNSZWFkeUhhbmRsZXIgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHsKICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7CiAgICAgICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgYWZ0ZXJSZW5kZXJlZChwYWdlcykgewogICAgICAgICAgICAgICAgICB3aW5kb3cubG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCLinIUgUGFnZWQuanMgaGFzIHJlbmRlcmVkIGV2ZXJ5dGhpbmchIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIFBhZ2VkLnJlZ2lzdGVySGFuZGxlcnMoUGFnZUpzUmVhZHlIYW5kbGVyKTsKCiAgICAgICAgICB3aW5kb3cuUGFnZWRQb2x5ZmlsbC5wcmV2aWV3KCk7CiAgICAgIH0KICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvamF2YXNjcmlwdHMvcGFnZWQucG9seWZpbGwtNC4zLWRmZjljMTJjLmpzIiBhc3luYz0iYXN5bmMiIG9ubG9hZD0iaW5pdFBhZ2VkKCkiPjwvc2NyaXB0PgoKICA8IS0tIE5vIEZhdmljb24gLS0+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOiwiPgoKICA8bGluawogICAgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiCiAgICByZWw9InN0eWxlc2hlZXQiCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIgogICAgLz4KCjwvaGVhZD4KCjxib2R5Pgo8IS0tIEJFR0lOIGFwcC92aWV3cy9yZXBvcnRzL3Nob3cuaHRtbC5lcmIgLS0+PGhlYWRlciBjbGFzcz0icGFnZS1oZWFkZXIiPgogIDxoMT5QREYgUmVuZGVyaW5nIFNhbXBsZTwvaDE+CiAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlN0eWxlZCB3aXRoIEJvb3RzdHJhcCAmYW1wOyBjdXN0b20gQ1NTPC9wPgo8L2hlYWRlcj4KPCEtLSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IGhhcyB0byBiZSBwbGFjZWQgaGVyZSAtLT4KPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIgdGV4dC1jZW50ZXIiPgogIDxwIGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIj5HZW5lcmF0ZWQgd2l0aCDinaTvuI8gYnkgQmlkaTJQREYg4oCTIFBhZ2UgPC9wPgo8L2Zvb3Rlcj4KCgo8bWFpbiBjbGFzcz0icGFnZS1jb250ZW50IGNvbnRhaW5lciBtdC00Ij4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIE9uZTwvaDI+CiAgICA8cD5UaGlzIGlzIHRoZSBmaXJzdCBwYWdlLiBBZGQgZW5vdWdoIHRleHQgaGVyZSB0byBwdXNoIHRvIHRoZSBuZXh0IHBhZ2UuPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uPC9wPgogICAgPHA+VmVzdGlidWx1bSBxdWlzIHZlbGl0IGF0IGF1Z3VlIHRpbmNpZHVudCBlZ2VzdGFzLiBJbnRlZ2VyIG5vbiBkb2xvciBhIG5pc2wgY29uc2VxdWF0IGdyYXZpZGEuIFNlZCB2aXRhZQogICAgICBmZXJtZW50dW0gc2FwaWVuLiBTdXNwZW5kaXNzZSBwb3RlbnRpLjwvcD4KICAgIDxwIGNsYXNzPSJicmVhay1hZnRlciI+PC9wPgogIDwvc2VjdGlvbj4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIFR3byAoTmV3IFBhZ2UpPC9oMj4KICAgIDxwPlRoaXMgY29udGVudCBhcHBlYXJzIG9uIGEgc2Vjb25kIHBhZ2UuPC9wPgoKICAgIDxoMz5TYW1wbGUgVGFibGU8L2gzPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ib3JkZXJlZCI+CiAgICAgIDx0aGVhZCBjbGFzcz0idGFibGUtbGlnaHQiPgogICAgICA8dHI+CiAgICAgICAgPHRoPiM8L3RoPgogICAgICAgIDx0aD5JdGVtPC90aD4KICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgIDx0aD5RdHk8L3RoPgogICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPldpZGdldCBBPC90ZD4KICAgICAgICA8dGQ+SGlnaC1xdWFsaXR5IHdpZGdldDwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5XaWRnZXQgQjwvdGQ+CiAgICAgICAgPHRkPkR1cmFibGUgd2lkZ2V0IGZvciBsb25nLXRlcm0gdXNlPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MzwvdGQ+CiAgICAgICAgPHRkPkdhZGdldCBDPC90ZD4KICAgICAgICA8dGQ+R3JlYXQgZm9yIHByb2R1Y3Rpdml0eTwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICAgIDx0ZD5UaGluZ2FtYWppZyBEPC90ZD4KICAgICAgICA8dGQ+RXNzZW50aWFsIHRoaW5neTwvdGQ+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjU8L3RkPgogICAgICAgIDx0ZD5XaGF0Y2hhbWFjYWxsaXQgRTwvdGQ+CiAgICAgICAgPHRkPk15c3RlcmlvdXMgYW5kIHVzZWZ1bDwvdGQ+CiAgICAgICAgPHRkPjE8L3RkPgogICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0LXN0YXJ0Ij4KICAgICAgPGltZyBjbGFzcz0iaW1nLWZsdWlkIG15LTMgbWUtMyIgc3R5bGU9Im1heC13aWR0aDoxMGNtOyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL2ltYWdlcy9pbWctNDFmYWFlNjUuanBnIiAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZmxvYXQtZW5kIj4KICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuPC9wPgogICAgICA8cD5WZXN0aWJ1bHVtIHF1aXMgdmVsaXQgYXQgYXVndWUgdGluY2lkdW50IGVnZXN0YXMuPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgoKICAgIDxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIGJvcmRlci1zdGFydCBib3JkZXItcHJpbWFyeSBwcy0zIG15LTQiPgogICAgICA8cD4iR29vZCBkZXNpZ24gaXMgb2J2aW91cy4gR3JlYXQgZGVzaWduIGlzIHRyYW5zcGFyZW50LiI8L3A+CiAgICAgIDxmb290ZXIgY2xhc3M9ImJsb2NrcXVvdGUtZm9vdGVyIj5Kb2UgU3BhcmFubzwvZm9vdGVyPgogICAgPC9ibG9ja3F1b3RlPgoKICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXktNCIgcm9sZT0iYWxlcnQiPgogICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZG9jdW1lbnQgZGVtb25zdHJhdGVzIGFkdmFuY2VkIHBhZ2luYXRpb24gd2l0aCBIVE1MIGFuZCBDU1MuCiAgICA8L2Rpdj4KCiAgICA8c3ZnIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGNsYXNzPSJteS00Ij4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9IiNmM2YzZjMiLz4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9InRyYW5zcGFyZW50IgogICAgICAgICAgICAgIHN0cm9rZT0iIzRhOTBlMiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWRhc2hhcnJheT0iNzUgMjUiCiAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoLTMyKSIvPgogICAgICA8dGV4dCB4PSIxNiIgeT0iMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMzMzMiIGZvbnQtc2l6ZT0iNSI+NzUlPC90ZXh0PgogICAgPC9zdmc+CgogICAgPGRpdiBjbGFzcz0icm93IG15LTQiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBPbmU8L2g0PgogICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBUd288L2g0PgogICAgICAgIDxwPlN1c3BlbmRpc3NlIHBvdGVudGkuIE51bGxhbSBlZ2V0IG5lcXVlIGlkIHNlbSBsYW9yZWV0IGNvbnZhbGxpcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgPC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzaWduYXR1cmUtc2VjdGlvbiBteS01IHB0LTUgdGV4dC1jZW50ZXIiPgogICAgPHA+UHJlcGFyZWQgYnk6PC9wPgogICAgPHA+PHN0cm9uZz5Zb3VyIE5hbWUgb3IgQ29tcGFueTwvc3Ryb25nPjwvcD4KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10b3Agdy0yNSBteC1hdXRvIG15LTIiPjwvZGl2PgogICAgPHAgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQiPlNpZ25hdHVyZTwvcD4KICA8L3NlY3Rpb24+CjwvbWFpbj4KCgo8IS0tIEVORCBhcHAvdmlld3MvcmVwb3J0cy9zaG93Lmh0bWwuZXJiIC0tPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFTkQgYXBwL3ZpZXdzL2xheW91dHMvcGRmLmh0bWwuZXJiIC0tPg==' completed
76
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/reset-e4bf23ac.css' started
77
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/screen-8cd72ff5.css' started
78
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/pdf-c1a69694.css' started
79
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/images/img-41faae65.jpg' started
80
+ [bidi2pdf_rails] [D2] Request url 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' started
81
+ [bidi2pdf_rails] [D2] Request url 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' completed
82
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/reset-e4bf23ac.css' completed
83
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/screen-8cd72ff5.css' completed
84
+ Started GET "/assets/images/img-41faae65.jpg" for 127.0.0.1 at 2025-04-16 19:25:36 +0200
85
+ Started GET "/assets/stylesheets/pdf-c1a69694.css" for 127.0.0.1 at 2025-04-16 19:25:36 +0200
86
+ Started GET "/assets/javascripts/paged.polyfill-4.3-dff9c12c.js" for 127.0.0.1 at 2025-04-16 19:25:36 +0200
87
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/pdf-c1a69694.css' completed
88
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/javascripts/paged.polyfill-4.3-dff9c12c.js' started
89
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/images/img-41faae65.jpg' completed
90
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap' started
91
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap' completed
92
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBHMdazTgWw.woff2' started
93
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBHMdazQ.woff2' started
94
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBHMdazTgWw.woff2' completed
95
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBHMdazQ.woff2' completed
96
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/javascripts/paged.polyfill-4.3-dff9c12c.js' completed
97
+ [bidi2pdf] Navigated to page url: data:text/html;charset=utf-8;base64,PCEtLSBCRUdJTiBhcHAvdmlld3MvbGF5b3V0cy9wZGYuaHRtbC5lcmIgLS0+PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+RHVtbXk8L3RpdGxlPgogIAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgogIDxtZXRhIG5hbWU9ImNzcmYtcGFyYW0iIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgLz4KPG1ldGEgbmFtZT0iY3NyZi10b2tlbiIgY29udGVudD0iWVhwWWhIRjY3R1l2X3pJXzMzVVg2Rml0V09jS0d1WnlCQUFSOWhZQ2JtY1EwbHZVVXlYMkdhdDJ2NzhYQzljZHAxNDN1cTJ3c1YtWGZ1b0RlX2tDeGciIC8+CiAgCgogIAoKICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFuaWZlc3QuanNvbiI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL2ljb24ucG5nIj4KCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL3N0eWxlc2hlZXRzL3Jlc2V0LWU0YmYyM2FjLmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvc2NyZWVuLThjZDcyZmY1LmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvcGRmLWMxYTY5Njk0LmNzcyIgLz4KCiAgPHNjcmlwdD4KICAgICAgd2luZG93LmxvYWRlZCA9IGZhbHNlOyAvLyBtYWtlIGl0IGdsb2JhbAoKICAgICAgd2luZG93LlBhZ2VkQ29uZmlnID0gewogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhZnRlcjogKGZsb3cpID0+IHsgIH0sCiAgICAgIH07CgogICAgICBmdW5jdGlvbiBpbml0UGFnZWQoKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiUGFnZWQgbGlicmFyeSBpcyByZWFkeSIpOwogICAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIFBhZ2VkIGhhbmRsZXJzIGhlcmUKCiAgICAgICAgICBjbGFzcyBQYWdlSnNSZWFkeUhhbmRsZXIgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHsKICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7CiAgICAgICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgYWZ0ZXJSZW5kZXJlZChwYWdlcykgewogICAgICAgICAgICAgICAgICB3aW5kb3cubG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCLinIUgUGFnZWQuanMgaGFzIHJlbmRlcmVkIGV2ZXJ5dGhpbmchIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIFBhZ2VkLnJlZ2lzdGVySGFuZGxlcnMoUGFnZUpzUmVhZHlIYW5kbGVyKTsKCiAgICAgICAgICB3aW5kb3cuUGFnZWRQb2x5ZmlsbC5wcmV2aWV3KCk7CiAgICAgIH0KICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvamF2YXNjcmlwdHMvcGFnZWQucG9seWZpbGwtNC4zLWRmZjljMTJjLmpzIiBhc3luYz0iYXN5bmMiIG9ubG9hZD0iaW5pdFBhZ2VkKCkiPjwvc2NyaXB0PgoKICA8IS0tIE5vIEZhdmljb24gLS0+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOiwiPgoKICA8bGluawogICAgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiCiAgICByZWw9InN0eWxlc2hlZXQiCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIgogICAgLz4KCjwvaGVhZD4KCjxib2R5Pgo8IS0tIEJFR0lOIGFwcC92aWV3cy9yZXBvcnRzL3Nob3cuaHRtbC5lcmIgLS0+PGhlYWRlciBjbGFzcz0icGFnZS1oZWFkZXIiPgogIDxoMT5QREYgUmVuZGVyaW5nIFNhbXBsZTwvaDE+CiAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlN0eWxlZCB3aXRoIEJvb3RzdHJhcCAmYW1wOyBjdXN0b20gQ1NTPC9wPgo8L2hlYWRlcj4KPCEtLSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IGhhcyB0byBiZSBwbGFjZWQgaGVyZSAtLT4KPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIgdGV4dC1jZW50ZXIiPgogIDxwIGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIj5HZW5lcmF0ZWQgd2l0aCDinaTvuI8gYnkgQmlkaTJQREYg4oCTIFBhZ2UgPC9wPgo8L2Zvb3Rlcj4KCgo8bWFpbiBjbGFzcz0icGFnZS1jb250ZW50IGNvbnRhaW5lciBtdC00Ij4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIE9uZTwvaDI+CiAgICA8cD5UaGlzIGlzIHRoZSBmaXJzdCBwYWdlLiBBZGQgZW5vdWdoIHRleHQgaGVyZSB0byBwdXNoIHRvIHRoZSBuZXh0IHBhZ2UuPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uPC9wPgogICAgPHA+VmVzdGlidWx1bSBxdWlzIHZlbGl0IGF0IGF1Z3VlIHRpbmNpZHVudCBlZ2VzdGFzLiBJbnRlZ2VyIG5vbiBkb2xvciBhIG5pc2wgY29uc2VxdWF0IGdyYXZpZGEuIFNlZCB2aXRhZQogICAgICBmZXJtZW50dW0gc2FwaWVuLiBTdXNwZW5kaXNzZSBwb3RlbnRpLjwvcD4KICAgIDxwIGNsYXNzPSJicmVhay1hZnRlciI+PC9wPgogIDwvc2VjdGlvbj4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIFR3byAoTmV3IFBhZ2UpPC9oMj4KICAgIDxwPlRoaXMgY29udGVudCBhcHBlYXJzIG9uIGEgc2Vjb25kIHBhZ2UuPC9wPgoKICAgIDxoMz5TYW1wbGUgVGFibGU8L2gzPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ib3JkZXJlZCI+CiAgICAgIDx0aGVhZCBjbGFzcz0idGFibGUtbGlnaHQiPgogICAgICA8dHI+CiAgICAgICAgPHRoPiM8L3RoPgogICAgICAgIDx0aD5JdGVtPC90aD4KICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgIDx0aD5RdHk8L3RoPgogICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPldpZGdldCBBPC90ZD4KICAgICAgICA8dGQ+SGlnaC1xdWFsaXR5IHdpZGdldDwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5XaWRnZXQgQjwvdGQ+CiAgICAgICAgPHRkPkR1cmFibGUgd2lkZ2V0IGZvciBsb25nLXRlcm0gdXNlPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MzwvdGQ+CiAgICAgICAgPHRkPkdhZGdldCBDPC90ZD4KICAgICAgICA8dGQ+R3JlYXQgZm9yIHByb2R1Y3Rpdml0eTwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICAgIDx0ZD5UaGluZ2FtYWppZyBEPC90ZD4KICAgICAgICA8dGQ+RXNzZW50aWFsIHRoaW5neTwvdGQ+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjU8L3RkPgogICAgICAgIDx0ZD5XaGF0Y2hhbWFjYWxsaXQgRTwvdGQ+CiAgICAgICAgPHRkPk15c3RlcmlvdXMgYW5kIHVzZWZ1bDwvdGQ+CiAgICAgICAgPHRkPjE8L3RkPgogICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0LXN0YXJ0Ij4KICAgICAgPGltZyBjbGFzcz0iaW1nLWZsdWlkIG15LTMgbWUtMyIgc3R5bGU9Im1heC13aWR0aDoxMGNtOyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL2ltYWdlcy9pbWctNDFmYWFlNjUuanBnIiAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZmxvYXQtZW5kIj4KICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuPC9wPgogICAgICA8cD5WZXN0aWJ1bHVtIHF1aXMgdmVsaXQgYXQgYXVndWUgdGluY2lkdW50IGVnZXN0YXMuPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgoKICAgIDxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIGJvcmRlci1zdGFydCBib3JkZXItcHJpbWFyeSBwcy0zIG15LTQiPgogICAgICA8cD4iR29vZCBkZXNpZ24gaXMgb2J2aW91cy4gR3JlYXQgZGVzaWduIGlzIHRyYW5zcGFyZW50LiI8L3A+CiAgICAgIDxmb290ZXIgY2xhc3M9ImJsb2NrcXVvdGUtZm9vdGVyIj5Kb2UgU3BhcmFubzwvZm9vdGVyPgogICAgPC9ibG9ja3F1b3RlPgoKICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXktNCIgcm9sZT0iYWxlcnQiPgogICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZG9jdW1lbnQgZGVtb25zdHJhdGVzIGFkdmFuY2VkIHBhZ2luYXRpb24gd2l0aCBIVE1MIGFuZCBDU1MuCiAgICA8L2Rpdj4KCiAgICA8c3ZnIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGNsYXNzPSJteS00Ij4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9IiNmM2YzZjMiLz4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9InRyYW5zcGFyZW50IgogICAgICAgICAgICAgIHN0cm9rZT0iIzRhOTBlMiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWRhc2hhcnJheT0iNzUgMjUiCiAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoLTMyKSIvPgogICAgICA8dGV4dCB4PSIxNiIgeT0iMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMzMzMiIGZvbnQtc2l6ZT0iNSI+NzUlPC90ZXh0PgogICAgPC9zdmc+CgogICAgPGRpdiBjbGFzcz0icm93IG15LTQiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBPbmU8L2g0PgogICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBUd288L2g0PgogICAgICAgIDxwPlN1c3BlbmRpc3NlIHBvdGVudGkuIE51bGxhbSBlZ2V0IG5lcXVlIGlkIHNlbSBsYW9yZWV0IGNvbnZhbGxpcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgPC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzaWduYXR1cmUtc2VjdGlvbiBteS01IHB0LTUgdGV4dC1jZW50ZXIiPgogICAgPHA+UHJlcGFyZWQgYnk6PC9wPgogICAgPHA+PHN0cm9uZz5Zb3VyIE5hbWUgb3IgQ29tcGFueTwvc3Ryb25nPjwvcD4KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10b3Agdy0yNSBteC1hdXRvIG15LTIiPjwvZGl2PgogICAgPHAgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQiPlNpZ25hdHVyZTwvcD4KICA8L3NlY3Rpb24+CjwvbWFpbj4KCgo8IS0tIEVORCBhcHAvdmlld3MvcmVwb3J0cy9zaG93Lmh0bWwuZXJiIC0tPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFTkQgYXBwL3ZpZXdzL2xheW91dHMvcGRmLmh0bWwuZXJiIC0tPg== response: {"id"=>7, "result"=>{"navigation"=>"adc6304a-93e3-411f-9c92-6b30e4dedef7", "url"=>"data:text/html;charset=utf-8;base64,PCEtLSBCRUdJTiBhcHAvdmlld3MvbGF5b3V0cy9wZGYuaHRtbC5lcmIgLS0+PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+RHVtbXk8L3RpdGxlPgogIAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgogIDxtZXRhIG5hbWU9ImNzcmYtcGFyYW0iIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgLz4KPG1ldGEgbmFtZT0iY3NyZi10b2tlbiIgY29udGVudD0iWVhwWWhIRjY3R1l2X3pJXzMzVVg2Rml0V09jS0d1WnlCQUFSOWhZQ2JtY1EwbHZVVXlYMkdhdDJ2NzhYQzljZHAxNDN1cTJ3c1YtWGZ1b0RlX2tDeGciIC8+CiAgCgogIAoKICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFuaWZlc3QuanNvbiI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL2ljb24ucG5nIj4KCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL3N0eWxlc2hlZXRzL3Jlc2V0LWU0YmYyM2FjLmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvc2NyZWVuLThjZDcyZmY1LmNzcyIgLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvc3R5bGVzaGVldHMvcGRmLWMxYTY5Njk0LmNzcyIgLz4KCiAgPHNjcmlwdD4KICAgICAgd2luZG93LmxvYWRlZCA9IGZhbHNlOyAvLyBtYWtlIGl0IGdsb2JhbAoKICAgICAgd2luZG93LlBhZ2VkQ29uZmlnID0gewogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhZnRlcjogKGZsb3cpID0+IHsgIH0sCiAgICAgIH07CgogICAgICBmdW5jdGlvbiBpbml0UGFnZWQoKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiUGFnZWQgbGlicmFyeSBpcyByZWFkeSIpOwogICAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIFBhZ2VkIGhhbmRsZXJzIGhlcmUKCiAgICAgICAgICBjbGFzcyBQYWdlSnNSZWFkeUhhbmRsZXIgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHsKICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7CiAgICAgICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgYWZ0ZXJSZW5kZXJlZChwYWdlcykgewogICAgICAgICAgICAgICAgICB3aW5kb3cubG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCLinIUgUGFnZWQuanMgaGFzIHJlbmRlcmVkIGV2ZXJ5dGhpbmchIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIFBhZ2VkLnJlZ2lzdGVySGFuZGxlcnMoUGFnZUpzUmVhZHlIYW5kbGVyKTsKCiAgICAgICAgICB3aW5kb3cuUGFnZWRQb2x5ZmlsbC5wcmV2aWV3KCk7CiAgICAgIH0KICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6MzAwMC9hc3NldHMvamF2YXNjcmlwdHMvcGFnZWQucG9seWZpbGwtNC4zLWRmZjljMTJjLmpzIiBhc3luYz0iYXN5bmMiIG9ubG9hZD0iaW5pdFBhZ2VkKCkiPjwvc2NyaXB0PgoKICA8IS0tIE5vIEZhdmljb24gLS0+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOiwiPgoKICA8bGluawogICAgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiCiAgICByZWw9InN0eWxlc2hlZXQiCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIgogICAgLz4KCjwvaGVhZD4KCjxib2R5Pgo8IS0tIEJFR0lOIGFwcC92aWV3cy9yZXBvcnRzL3Nob3cuaHRtbC5lcmIgLS0+PGhlYWRlciBjbGFzcz0icGFnZS1oZWFkZXIiPgogIDxoMT5QREYgUmVuZGVyaW5nIFNhbXBsZTwvaDE+CiAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlN0eWxlZCB3aXRoIEJvb3RzdHJhcCAmYW1wOyBjdXN0b20gQ1NTPC9wPgo8L2hlYWRlcj4KPCEtLSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IGhhcyB0byBiZSBwbGFjZWQgaGVyZSAtLT4KPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIgdGV4dC1jZW50ZXIiPgogIDxwIGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIj5HZW5lcmF0ZWQgd2l0aCDinaTvuI8gYnkgQmlkaTJQREYg4oCTIFBhZ2UgPC9wPgo8L2Zvb3Rlcj4KCgo8bWFpbiBjbGFzcz0icGFnZS1jb250ZW50IGNvbnRhaW5lciBtdC00Ij4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIE9uZTwvaDI+CiAgICA8cD5UaGlzIGlzIHRoZSBmaXJzdCBwYWdlLiBBZGQgZW5vdWdoIHRleHQgaGVyZSB0byBwdXNoIHRvIHRoZSBuZXh0IHBhZ2UuPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uPC9wPgogICAgPHA+VmVzdGlidWx1bSBxdWlzIHZlbGl0IGF0IGF1Z3VlIHRpbmNpZHVudCBlZ2VzdGFzLiBJbnRlZ2VyIG5vbiBkb2xvciBhIG5pc2wgY29uc2VxdWF0IGdyYXZpZGEuIFNlZCB2aXRhZQogICAgICBmZXJtZW50dW0gc2FwaWVuLiBTdXNwZW5kaXNzZSBwb3RlbnRpLjwvcD4KICAgIDxwIGNsYXNzPSJicmVhay1hZnRlciI+PC9wPgogIDwvc2VjdGlvbj4KICA8c2VjdGlvbj4KICAgIDxoMiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5TZWN0aW9uIFR3byAoTmV3IFBhZ2UpPC9oMj4KICAgIDxwPlRoaXMgY29udGVudCBhcHBlYXJzIG9uIGEgc2Vjb25kIHBhZ2UuPC9wPgoKICAgIDxoMz5TYW1wbGUgVGFibGU8L2gzPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ib3JkZXJlZCI+CiAgICAgIDx0aGVhZCBjbGFzcz0idGFibGUtbGlnaHQiPgogICAgICA8dHI+CiAgICAgICAgPHRoPiM8L3RoPgogICAgICAgIDx0aD5JdGVtPC90aD4KICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgIDx0aD5RdHk8L3RoPgogICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPldpZGdldCBBPC90ZD4KICAgICAgICA8dGQ+SGlnaC1xdWFsaXR5IHdpZGdldDwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5XaWRnZXQgQjwvdGQ+CiAgICAgICAgPHRkPkR1cmFibGUgd2lkZ2V0IGZvciBsb25nLXRlcm0gdXNlPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MzwvdGQ+CiAgICAgICAgPHRkPkdhZGdldCBDPC90ZD4KICAgICAgICA8dGQ+R3JlYXQgZm9yIHByb2R1Y3Rpdml0eTwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICAgIDx0ZD5UaGluZ2FtYWppZyBEPC90ZD4KICAgICAgICA8dGQ+RXNzZW50aWFsIHRoaW5neTwvdGQ+CiAgICAgICAgPHRkPjQ8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjU8L3RkPgogICAgICAgIDx0ZD5XaGF0Y2hhbWFjYWxsaXQgRTwvdGQ+CiAgICAgICAgPHRkPk15c3RlcmlvdXMgYW5kIHVzZWZ1bDwvdGQ+CiAgICAgICAgPHRkPjE8L3RkPgogICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0LXN0YXJ0Ij4KICAgICAgPGltZyBjbGFzcz0iaW1nLWZsdWlkIG15LTMgbWUtMyIgc3R5bGU9Im1heC13aWR0aDoxMGNtOyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjMwMDAvYXNzZXRzL2ltYWdlcy9pbWctNDFmYWFlNjUuanBnIiAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZmxvYXQtZW5kIj4KICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuPC9wPgogICAgICA8cD5WZXN0aWJ1bHVtIHF1aXMgdmVsaXQgYXQgYXVndWUgdGluY2lkdW50IGVnZXN0YXMuPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgoKICAgIDxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIGJvcmRlci1zdGFydCBib3JkZXItcHJpbWFyeSBwcy0zIG15LTQiPgogICAgICA8cD4iR29vZCBkZXNpZ24gaXMgb2J2aW91cy4gR3JlYXQgZGVzaWduIGlzIHRyYW5zcGFyZW50LiI8L3A+CiAgICAgIDxmb290ZXIgY2xhc3M9ImJsb2NrcXVvdGUtZm9vdGVyIj5Kb2UgU3BhcmFubzwvZm9vdGVyPgogICAgPC9ibG9ja3F1b3RlPgoKICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXktNCIgcm9sZT0iYWxlcnQiPgogICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZG9jdW1lbnQgZGVtb25zdHJhdGVzIGFkdmFuY2VkIHBhZ2luYXRpb24gd2l0aCBIVE1MIGFuZCBDU1MuCiAgICA8L2Rpdj4KCiAgICA8c3ZnIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGNsYXNzPSJteS00Ij4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9IiNmM2YzZjMiLz4KICAgICAgPGNpcmNsZSByPSIxNiIgY3g9IjE2IiBjeT0iMTYiIGZpbGw9InRyYW5zcGFyZW50IgogICAgICAgICAgICAgIHN0cm9rZT0iIzRhOTBlMiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWRhc2hhcnJheT0iNzUgMjUiCiAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoLTMyKSIvPgogICAgICA8dGV4dCB4PSIxNiIgeT0iMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMzMzMiIGZvbnQtc2l6ZT0iNSI+NzUlPC90ZXh0PgogICAgPC9zdmc+CgogICAgPGRpdiBjbGFzcz0icm93IG15LTQiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBPbmU8L2g0PgogICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgPGg0PkNvbHVtbiBUd288L2g0PgogICAgICAgIDxwPlN1c3BlbmRpc3NlIHBvdGVudGkuIE51bGxhbSBlZ2V0IG5lcXVlIGlkIHNlbSBsYW9yZWV0IGNvbnZhbGxpcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgICA8cCBjbGFzcz0iY29udGVudCI+CiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBlbGxlbnRlc3F1ZSBhIHVsbGFtY29ycGVyIHB1cnVzLiBOdWxsYSBmYWNpbGlzaS4KICAgICAgQ3JhcyBwcmV0aXVtIHJpc3VzIGFjIGxpZ3VsYSBkaWduaXNzaW0sIHV0IGRpY3R1bSBqdXN0byBmZXJtZW50dW0uIERvbmVjIGRhcGlidXMgcHVydXMgdml0YWUgbWFsZXN1YWRhCiAgICAgIGJpYmVuZHVtLgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNvbnRlbnQiPgogICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQZWxsZW50ZXNxdWUgYSB1bGxhbWNvcnBlciBwdXJ1cy4gTnVsbGEgZmFjaWxpc2kuCiAgICAgIENyYXMgcHJldGl1bSByaXN1cyBhYyBsaWd1bGEgZGlnbmlzc2ltLCB1dCBkaWN0dW0ganVzdG8gZmVybWVudHVtLiBEb25lYyBkYXBpYnVzIHB1cnVzIHZpdGFlIG1hbGVzdWFkYQogICAgICBiaWJlbmR1bS4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJjb250ZW50Ij4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGVsbGVudGVzcXVlIGEgdWxsYW1jb3JwZXIgcHVydXMuIE51bGxhIGZhY2lsaXNpLgogICAgICBDcmFzIHByZXRpdW0gcmlzdXMgYWMgbGlndWxhIGRpZ25pc3NpbSwgdXQgZGljdHVtIGp1c3RvIGZlcm1lbnR1bS4gRG9uZWMgZGFwaWJ1cyBwdXJ1cyB2aXRhZSBtYWxlc3VhZGEKICAgICAgYmliZW5kdW0uCiAgICA8L3A+CiAgPC9zZWN0aW9uPgogIDxzZWN0aW9uIGNsYXNzPSJzaWduYXR1cmUtc2VjdGlvbiBteS01IHB0LTUgdGV4dC1jZW50ZXIiPgogICAgPHA+UHJlcGFyZWQgYnk6PC9wPgogICAgPHA+PHN0cm9uZz5Zb3VyIE5hbWUgb3IgQ29tcGFueTwvc3Ryb25nPjwvcD4KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10b3Agdy0yNSBteC1hdXRvIG15LTIiPjwvZGl2PgogICAgPHAgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQiPlNpZ25hdHVyZTwvcD4KICA8L3NlY3Rpb24+CjwvbWFpbj4KCgo8IS0tIEVORCBhcHAvdmlld3MvcmVwb3J0cy9zaG93Lmh0bWwuZXJiIC0tPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFTkQgYXBwL3ZpZXdzL2xheW91dHMvcGRmLmh0bWwuZXJiIC0tPg=="}, "type"=>"success"}
98
+ [bidi2pdf] ✅ All network events completed.
99
+ [bidi2pdf_rails] Network was idle after 0.3ms, 11 requests, transferred 2242 bytes (status codes: 200: 10, pending: 1)
100
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/reset-e4bf23ac.css' started
101
+ [bidi2pdf_rails] [D2] Request url 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' started
102
+ [bidi2pdf_rails] Sending command: script.evaluate id: #8
103
+ [bidi2pdf_rails] Sending command: {:id=>8, :method=>"script.evaluate", :params=>{:expression=>"new Promise(resolve => { const check = () => window.loaded ? resolve('done') : setTimeout(check, 100); check(); });", :target=>{:context=>"B4C3F2349A2375F87C3016CCA88CC140"}, :awaitPromise=>true}} (0.2ms)
104
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/screen-8cd72ff5.css' started
105
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/pdf-c1a69694.css' started
106
+ Started GET "/assets/stylesheets/reset-e4bf23ac.css" for 127.0.0.1 at 2025-04-16 19:25:37 +0200
107
+ [bidi2pdf_rails] [D2] Request url 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' completed
108
+ Started GET "/assets/stylesheets/screen-8cd72ff5.css" for 127.0.0.1 at 2025-04-16 19:25:37 +0200
109
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/reset-e4bf23ac.css' completed
110
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/screen-8cd72ff5.css' completed
111
+ Started GET "/assets/stylesheets/pdf-c1a69694.css" for 127.0.0.1 at 2025-04-16 19:25:37 +0200
112
+ [bidi2pdf_rails] [D2] Request url 'http://127.0.0.1:3000/assets/stylesheets/pdf-c1a69694.css' completed
113
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap' started
114
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap' completed
115
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' started
116
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' started
117
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' started
118
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' started
119
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' started
120
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' started
121
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' started
122
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' started
123
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' started
124
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' started
125
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' started
126
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' started
127
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' started
128
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' started
129
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' started
130
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' started
131
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' started
132
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' started
133
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' started
134
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' started
135
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' started
136
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' started
137
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' started
138
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' started
139
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' started
140
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' started
141
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' started
142
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' started
143
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lkQ.woff2' started
144
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lkQ.woff2' started
145
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lkQ.woff2' started
146
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lkQ.woff2' started
147
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lkQ.woff2' started
148
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2' started
149
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lkQ.woff2' started
150
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lkQ.woff2' started
151
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lkQ.woff2' started
152
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lkQ.woff2' started
153
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lkQ.woff2' started
154
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2' started
155
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' completed
156
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' completed
157
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' completed
158
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' completed
159
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' completed
160
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' completed
161
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' completed
162
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' completed
163
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' completed
164
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' completed
165
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' completed
166
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' completed
167
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' completed
168
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' completed
169
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' completed
170
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2' completed
171
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2' completed
172
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2' completed
173
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' completed
174
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lkQ.woff2' completed
175
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lkQ.woff2' completed
176
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0me8iUI0lkQ.woff2' completed
177
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0me8iUI0lkQ.woff2' completed
178
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lkQ.woff2' completed
179
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0me8iUI0lkQ.woff2' completed
180
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2' completed
181
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lkQ.woff2' completed
182
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lkQ.woff2' completed
183
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0me8iUI0lkQ.woff2' completed
184
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' completed
185
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0me8iUI0lkQ.woff2' completed
186
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' completed
187
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' completed
188
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' completed
189
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' completed
190
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2' completed
191
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2' completed
192
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2' completed
193
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/roboto/v47/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2' completed
194
+ [bidi2pdf_rails] [D2] Request url 'https://fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2' completed
195
+ [bidi2pdf_rails] Page loaded: 2830.2ms
196
+ [bidi2pdf_rails] Sending command: browsingContext.print id: #9
197
+ [bidi2pdf_rails] Sending command: {:id=>9, :method=>"browsingContext.print", :params=>{:background=>true, :context=>"B4C3F2349A2375F87C3016CCA88CC140"}} (0.1ms)
198
+ [bidi2pdf] PDF generated successfully.
199
+ [bidi2pdf_rails] Sending command: browsingContext.close id: #10
200
+ [bidi2pdf_rails] Sending command: {:id=>10, :method=>"browsingContext.close", :params=>{:context=>"B4C3F2349A2375F87C3016CCA88CC140"}} (0.1ms)
201
+ [bidi2pdf] Received event: script.realmDestroyed, params: {"realm"=>"-2963794492502683917.-5382393100277723950"}
202
+ [bidi2pdf] Browsing context closed: B4C3F2349A2375F87C3016CCA88CC140 {"id"=>10, "result"=>{}, "type"=>"success"}
203
+ [bidi2pdf] Closed tab: B4C3F2349A2375F87C3016CCA88CC140
204
+ [bidi2pdf_rails] Sending command: browsingContext.close id: #11
205
+ [bidi2pdf_rails] Sending command: {:id=>11, :method=>"browsingContext.close", :params=>{:context=>"181F29B414939C48670D1FE04EE23264"}} (0.2ms)
206
+ [bidi2pdf] Received event: script.realmDestroyed, params: {"realm"=>"-7958152185205769160.1249985753951628907"}
207
+ [bidi2pdf] Browsing context closed: 181F29B414939C48670D1FE04EE23264 {"id"=>11, "result"=>{}, "type"=>"success"}
208
+ [bidi2pdf_rails] Sending command: browser.removeUserContext id: #12
209
+ [bidi2pdf_rails] Sending command: {:id=>12, :method=>"browser.removeUserContext", :params=>{:userContext=>"9764D645F9DD58ECAFD1FD645AAD7567"}} (0.2ms)
210
+ [bidi2pdf] User context deleted: {}
211
+ Rendering text template
212
+ Rendered text template (Duration: 0.1ms | GC: 0.0ms)
213
+ Sent data my-report.pdf (1.5ms)
214
+ Completed 200 OK in 8359ms (Views: 8305.6ms | GC: 922.8ms)
215
+
216
+
217
+ Started GET "/favicon.ico" for 127.0.0.1 at 2025-04-16 19:25:44 +0200
218
+
219
+ ActionController::RoutingError (No route matches [GET] "/favicon.ico"):
220
+
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Your browser is not supported (406)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/406-unsupported-browser.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>Your browser is not supported.</h1>
62
+ <p>Please upgrade your browser to continue.</p>
63
+ </div>
64
+ </div>
65
+ </body>
66
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>