text:
hotstar and voot livestreamer i.e h.exe and v.exe not downloading video from voot, from today.

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.11.15. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.11.15

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2017.11.15
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.

Carefully read new issue template and provide all requested information.

i was downlading videos from voot smoothely using youtube-dl   v,exe   but today i m not able to download single file i am getting error '
C:\Hotstar and Voot Downloader>v "https://www.voot.com/playlist/bigg-boss-uncut-
scenes/333246/hina-misses-her-pooh/548208/?&trayLayout=playlistMedias"
[Voot] 548208: Downloading JSON metadata
[Kaltura] 0_layzbckh: Downloading video info JSON
[Kaltura] 0_layzbckh: Downloading m3u8 information
ERROR: unable to download video data: HTTP Error 404: Not Found
C:\Hotstar and Voot Downloader>
I have even updated to current version


text:
Hey! I have problem from today with Udemy paid courses. Yesterday everything worked well, but today I get this, from different URL-s

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-u', 'PRIVATE', '-p', 'PRIVATE', 'https://www.udemy.com/the-python-mega-course/learn/v4/t/lecture/5170346?start=0']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2018.02.11
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.16299
[debug] exe versions: none
[debug] Proxy map: {}
[udemy] Downloading login popup
ERROR: Unable to download webpage: HTTP Error 403: Unauthorized (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy028tx8p\build\youtube_dl\extractor\common.py", line 519, in _request_webpage
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpy028tx8p\build\youtube_dl\YoutubeDL.py", line 2199, in urlopen
File "C:\Python\Python34\lib\urllib\request.py", line 470, in open
File "C:\Python\Python34\lib\urllib\request.py", line 580, in http_response
File "C:\Python\Python34\lib\urllib\request.py", line 508, in error
File "C:\Python\Python34\lib\urllib\request.py", line 442, in _call_chain
File "C:\Python\Python34\lib\urllib\request.py", line 588, in http_error_default

Me , too :(

Same Here :(

source: gharchive/issue

authors: Ashroyal Slobodnjak silverbret1709

license: Unlicense

license_type: permissive

license_source: github-api


text:
Where do I enter --cookies FILE command?

Here is command that not working because It premium content and required cookie, question is where should I put the command?
youtube-dl.exe --ffmpeg-location C:\Users\anonimous\Desktop\ffmpeg\ffmpeg-20180404-2accdd3-win64-static\ffmpeg-20180404-2accdd3-win64-static\bin --hls-prefer-native https://cdn-video.pvgna.com/782/original-1487910128-1080p/1080p.m3u8

Same place you enter any other command. Note that passing cookies does not guarantee it will work.

@dstftw path is this "C:\Users\anonimous\Desktop\ffmpeg\ffmpeg-20180404-2accdd3-win64-static\ffmpeg-20180404-2accdd3-win64-static\bin" or this "F:/twitch download/bin/cookies.txt"?

@dstftw if I put it in quotes spaces is not a problem anymore? And the --cookies command itself I put in valid order?

@dstftw now this error
youtube-dl.exe --ffmpeg-location C:\Users\anonimous\Desktop\ffmpeg\ffmpeg-20180404-2accdd3-win64-static\ffmpeg-20180404-2accdd3-win64-static\bin --cookies "F:/twitch download/bin/cookies.txt" --hls-prefer-native https://cdn-video.pvgna.com/782/original-1487910128-1080p/1080p.m3u8

@dstftw now when I put path in ' ' instead of " " I get this hardcore error. I need to update or something?
youtube-dl.exe --ffmpeg-location C:\Users\anonimous\Desktop\ffmpeg\ffmpeg-20180404-2accdd3-win64-static\ffmpeg-20180404-2accdd3-win64-static\bin --cookies 'F:/twitch download/bin/cookies.txt' --hls-prefer-native https://cdn-video.pvgna.com/782/original-1487910128-1080p/1080p.m3u8

Maybe you'll finally start reading my posts?

Note that passing cookies alone does not guarantee it will work in the first place.

authors: dstftw hasnogaems


text:
youtube-dl should display ffmpeg errors

Whenever ffmpeg gives out errors, youtube-dl should give that feedback to the user. As it is now, it only gives the last line:[ffmpeg] Correcting container in "A.m4a"
ERROR: file:A.temp.m4a: Invalid argument
But it would be better if it gave the whole error so that I would know that the error has to do with mp4 codec: Requested output format 'mp4' is not a suitable output format
file:A.temp.m4a: Invalid argument

-hide_banner -loglevel warning (or -loglevel error) can be passed to ffmpeg instead of silencing it completely, unless --verbose was given to youtube-dl. This way you'll get less verbose messages that can be even forwarded to the terminal directly.

authors: fstirlitz illumilore


text:
[Pornhub] Fix for Issue #12007

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Explanation of your pull request in arbitrary form goes here. Please make sure the description explains the purpose and effect of your pull request and is worded well enough to be understood. Provide as much context and examples as possible.
Fixes the pronhub extractor. Uses exec() which is not the smartest solution... suggestions are welcomed!
UPDATE: Does not use exec() anymore.

Fix for issue #12007 - I'm not comfortable with using exec() but it worked fine...

You should not use exec. Random codes may be executed.

@yan12125 I'm aware of that. Any suggestions how to solve the problem we're facing?
Pornhub does first define variables:
a = 'http://www'
b = 'pornhub.com/video.mp4'
And than the video url gets merged from the variables:
url = a + b
So I need to find some kind of way to execute this Javascript-Code - I don't think that writing a parser myself would be the solution. I hoped that youtube-dl had some "execute this javascript code"-Function.

There's a jsinterp module. See youtube.py for an example usage

@yan12125 Fixed it, it's kind of simple parsing, so no need to use JSInterpreter.

All you need to do is request the video with a cookie "platform=tv" then you get an unobfuscated video URL.

source: gharchive/pull-request


text:
[discovery] Added foodnetwork and hgtv (fixes #17947)

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
foodnetwork and hgtv updated their site to use the discovery format of listing content. fixes #17947

The checks are failing because of the HGTV test in scrippsnetworks.py.
Also, captions/subtitles aren't downloading because of some authentication issue with AWS. For example:
$ youtube-dl -v --skip-download --all-subs --cookies cookies.txt https://watch.foodnetwork.com/tv-shows/good-eats/full-episodes/a-bird-in-the-pan
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '--skip-download', '--all-subs', '--cookies', 'cookies.txt', 'https://watch.foodnetwork.com/tv-shows/good-eats/full-episodes/a-bird-in-the-pan']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.11.03
[debug] Python version 3.7.0 (CPython) - Linux-4.4.0-17134-Microsoft-x86_64-with-debian-buster-sid
[debug] exe versions: ffmpeg 3.4.4-0ubuntu0.18.04.1, ffprobe 3.4.4-0ubuntu0.18.04.1
[debug] Proxy map: {}
[Discovery] a-bird-in-the-pan: Downloading webpage
[Discovery] a-bird-in-the-pan: Downloading JSON metadata
[Discovery] a-bird-in-the-pan: Downloading m3u8 information
[debug] Default format spec: bestvideo+bestaudio/best
[info] Writing video subtitles to: A Bird in the Pan-5b3b73546b66d104f34fdb6a.en.scc
WARNING: Unable to download subtitle for "en": Unable to download webpage: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

The captions url is https://s3.amazonaws.com/prod.sni.transcode/Discovery_Go/FOOD12517/FOOD12517_20180823152543.scc.
Might need to port the AWS code from the Scripps extractor too?

I manually added this patch and it does work on hgtv at least. Thank you!

Hey, how can I learn to manually add a patch? thanks in advance. @tv21

I'd love to know too! If this is working for HGTV, I'd like to test it. I have a login for it and everything.

authors: VietTPham nerdily zacklb


text:
Cannot enable/disable controller from card

Checklist:

[X] I updated to the latest version available
[X] I cleared the cache of my browser

Release with the issue: Home Assistant 2022.11.2, Irrigation Unlimited 2022.11.0, Irrigation Unlimited Card 2022.10.0
Last working release (if known): Not sure, but I believe it was working a few months ago.
Browser and Operating System:  Firefox 106.0.5, Linux (Endeavour OS).  Issue also occurs from the Home Assistant iOS companion app.

Description of problem:  Cannot "Enable" irrigation controller from the card.  When I try to enable the controller, the toggle button changes state and makes it look like it is enabled, but none of the schedules/timers update.  Then if I refresh the page, the toggle button no longer indicates it is enabled.  I can enable the controller by calling the Enable Service, and once I do this, the rest of the card will update with the schedules/timers.  And vice versa if I then call the Disable Service.  Redownload the card through HACS has not helped.

Javascript errors shown in the web inspector (if applicable):

Additional information:

I confirm that even with irrigation unlimited and irrigation unlimited card set to 2023.6.1

The whole menu is broken. The fix is in. Will release shortly.

Fixed in release 2023.6.2

Hi, how to use Open Weather with it?

Is your question related to the title of the thread? It would be more appropriate I think to post in HA forum

Hi, I installed irrigation unlimited and most of it I have working also
OpenWeather but not with the irrigation.
On Wed, 27 Mar 2024, 21:06 Kolia56, @.***> wrote:

Is your question related to the title of the thread? It would be more
appropriate I think to post in HA forum
—
Reply to this email directly, view it on GitHub
https://github.com/rgc99/irrigation-unlimited-card/issues/8#issuecomment-2023990385,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AY6VFUBC7J4PF3KYTN5SIW3Y2MRDTAVCNFSM6AAAAAAR5D6AI6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRTHE4TAMZYGU
.
You are receiving this because you commented.Message ID:
@.***>

license: MIT


text:
🛑 Sito Web is down

In f46a661, Sito Web (https://www.comune.preganziol.tv.it) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Sito Web is back up in a34ec3e after 6 minutes.

repo: rglauco/upptime


text:
🛑 Cryptoagent is down

In df59216, Cryptoagent (https://cryptoagent.us) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cryptoagent is back up in d9c0a8f.

repo: rgstephens/upptime


text:
OpenShift Login - inconsistent login error message

Describe the bug
When logging into OpenShift, if the user provides either an incorrect Username or Password the error message references 'Login' instead of Username
To Reproduce

Login to OpenShift
Enter an incorrect Username or Password
Click Log in

Expected behavior
The error should be consistent with the UI which references 'Username' and not 'Login'
Screenshots

Additional context
Add any other context about the problem here.

Not a Parasol workshop, but an OpenShift one. Which I had not noticed in the 10 years I've been using it!

https://issues.redhat.com/browse/OCPBUGS-43609

authors: antowaddle guimou

repo: rh-aiservices-bu/parasol-insurance


text:
fix: Make quay.io use pull secret only

If the remote registry is quay, we don't have user/pass as we only use the pull secret, avoid using them.
Fixes #452

:tada: This PR is included in version 1.10.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


text:
A stack overflow vulnerability was found

The vulnerThe vulnerability error information is as followsability error information is as follows:
==272977==ERROR: AddressSanitizer: stack-overflow on address 0x7ffc96d13ac0 (pc 0x55f7a3fd45c5 bp 0x7ffc96d16880 sp 0x7ffc96d13ac0 T0)
    #0 0x55f7a3fd45c5 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs
    #1 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #2 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #3 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #4 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #5 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #6 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #7 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #8 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #9 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #10 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #11 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #12 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #13 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #14 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #15 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #16 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #17 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #18 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #19 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #20 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #21 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #22 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #23 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #24 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #25 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #26 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #27 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #28 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #29 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #30 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #31 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #32 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #33 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #34 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #35 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #36 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #37 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #38 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #39 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #40 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #41 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #42 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #43 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #44 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #45 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #46 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #47 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #48 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #49 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #50 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #51 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #52 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #53 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #54 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #55 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #56 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #57 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #58 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #59 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #60 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #61 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #62 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #63 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #64 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #65 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #66 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #67 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #68 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #69 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #70 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #71 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #72 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #73 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #74 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #75 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #76 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #77 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #78 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #79 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #80 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #81 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #82 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #83 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #84 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #85 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #86 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #87 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #88 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #89 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #90 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #91 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #92 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #93 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #94 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #95 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #96 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #97 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #98 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #99 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #100 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #101 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #102 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #103 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #104 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #105 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #106 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #107 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #108 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #109 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #110 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #111 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #112 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #113 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #114 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #115 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #116 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #117 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #118 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #119 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #120 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #121 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #122 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #123 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #124 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #125 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #126 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #127 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #128 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #129 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #130 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #131 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #132 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #133 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #134 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #135 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #136 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #137 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #138 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #139 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #140 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #141 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #142 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #143 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #144 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #145 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #146 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #147 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #148 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #149 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #150 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #151 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #152 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #153 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #154 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #155 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #156 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #157 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #158 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #159 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #160 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #161 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #162 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #163 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #164 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #165 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #166 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #167 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #168 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #169 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #170 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #171 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #172 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #173 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #174 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #175 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #176 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #177 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #178 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #179 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #180 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #181 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #182 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #183 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #184 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #185 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #186 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #187 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #188 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #189 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #190 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #191 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #192 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #193 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #194 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #195 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #196 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #197 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #198 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #199 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #200 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #201 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #202 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #203 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #204 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #205 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #206 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #207 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #208 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #209 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #210 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #211 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #212 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #213 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #214 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #215 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #216 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #217 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #218 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #219 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #220 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #221 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #222 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #223 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #224 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #225 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #226 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #227 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #228 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #229 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #230 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #231 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #232 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #233 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #234 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #235 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #236 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #237 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #238 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #239 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #240 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #241 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #242 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #243 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #244 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #245 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #246 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #247 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #248 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #249 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #250 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #251 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #252 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #253 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #254 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #255 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #256 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #257 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #258 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #259 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #260 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #261 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #262 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #263 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #264 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #265 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #266 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39
    #267 0x55f7a4047619 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_method_call::hc709b7863797ed38 /src/rhai/src/func/call.rs:976:25
    #268 0x55f7a3f7e804 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain_raw::h40ce123181b20b25 /src/rhai/src/eval/chaining.rs:877:25
    #269 0x55f7a3f76bf3 in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::_$u7b$$u7b$closure$u7d$$u7d$::ha0ae2b6cfdd7ea79 /src/rhai/src/eval/chaining.rs:513:25
    #270 0x55f7a3f7271b in core::option::Option$LT$T$GT$::map_or_else::h6059df74e72b5602 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/option.rs:1172:24
    #271 0x55f7a3f7271b in rhai::eval::chaining::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_dot_index_chain::h6ecf223a52f3fc5a /src/rhai/src/eval/chaining.rs:508:17
    #272 0x55f7a3fbe989 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:405:30
    #273 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #274 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #275 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #276 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #277 0x55f7a3fc0e2d in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:396:17
    #278 0x55f7a3fbfd3c in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:261:37
    #279 0x55f7a4043112 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::get_arg_value::h40eeaa55050cd41e /src/rhai/src/func/call.rs:717:9
    #280 0x55f7a40584f9 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::make_function_call::h6ced0fe022154253 /src/rhai/src/func/call.rs:1377:25
    #281 0x55f7a4077eb1 in rhai::func::call::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_fn_call_expr::h9eea1509380a08ec /src/rhai/src/func/call.rs:1902:9
    #282 0x55f7a3fbe743 in rhai::eval::expr::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_expr::h09fd9ccc181ed335 /src/rhai/src/eval/expr.rs:246:17
    #283 0x55f7a3fd5cb2 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96 /src/rhai/src/eval/stmt.rs:278:33
    #284 0x55f7a3fcefeb in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::_$u7b$$u7b$closure$u7d$$u7d$::hc172eee184228ff8 /src/rhai/src/eval/stmt.rs:76:17
    #285 0x55f7a3fce1d0 in core::iter::traits::iterator::Iterator::try_fold::h0a3b3286061c5141 /rustc/89e2160c4ca5808657ed55392620ed1dbbce78d1/library/core/src/iter/traits/iterator.rs:2462:21
    #286 0x55f7a3fce1d0 in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt_block::h30e41a366e84e11a /src/rhai/src/eval/stmt.rs:69:9
    #287 0x55f7a4091c1a in rhai::func::script::_$LT$impl$u20$rhai..engine..Engine$GT$::call_script_fn::h4a86d7b916e31cb2 /src/rhai/src/func/script.rs:121:39

SUMMARY: AddressSanitizer: stack-overflow /src/rhai/src/eval/stmt.rs in rhai::eval::stmt::_$LT$impl$u20$rhai..engine..Engine$GT$::eval_stmt::h3f1d68ce37fc6e96
==272977==ABORTING

This vulnerability was found when using ossfuzz to test scripting fuzzer, the crash sample is attached.
crash-c70466c551d3cea97000681f88369f27b3cfff54.zip

Yes, this is a bug.  Thanks for catching this.

Please test the latest drop https://github.com/rhaiscript/rhai/pull/881 and see if it fixes the stack overflow.

I recompile the latest project, and then use the crash - c70466c551d3cea97000681f88369f27b3cfff54 test, the fuzzer without error, says it has fixed.

authors: MageWeiG schungx

repo: rhaiscript/rhai


text:
Internal panic in the engine

Hello rhai team,
We've introduced the possibility to edit document by (rhai) function in Meilisearch a few months ago and a user reported an internal panic in rhai.
I didn’t have the time to try to reproduce the issue on my side yet, but I thought it could be nice for you to get the error with the line number in case it’s trivial to fix:
2024-09-25T07:11:29.563769Z ERROR meilisearch: info=panicked at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rhai-1.19.0/src/engine.rs:347:58: called `Option::unwrap()` on a `None` value

And here’s the original issue with the function if that helps: https://github.com/meilisearch/meilisearch/issues/4956
Thanks for the awesome lib 🎉

This seems to happen during a strings cache contention.  I can see that, under sync, there is possibility that the strings cache is still locked by another process while somebody wants to write to it.

Can you check the latest drop to see if it happens again?  I just pushed a fix.

Hey, after a lot of tests from ourselves and our users we didn’t reproduce this bug or anything similar, thanks for the patch!
Do you think you could make a new patch release this week so we’re not relying on the git repo + a rev?

I encountered the same proble.
It points to this function:
pub fn get_interned_string(
    &self,
    string: impl AsRef<str> + Into<ImmutableString>,
) -> ImmutableString {
    match self.interned_strings {
        Some(ref interner) => locked_write(interner).unwrap().get(string),
        None => string.into(),
    }
}

the locked_write(interner) returns None.

Please kindly check out the latest drop to see if it solves your problem.
I'm planning to make a new release soonish if everything is stable.

@irevoire   hope this is now resolved?

Hey, we've not heard of this issue again.
I cannot say for sure it's 100% solved since it's not our most used feature. But it's definitely probably solved ahah

Great! So closing this for now.

authors: irevoire longzou schungx


text:
ev3dev-lang-python, rpyc and PIL

Hi again! This is not a issue.  I am working with rpyc.  I need big fonts for lcd screen!
I got  a beautiful example in ev3python (thanks @ndward!)
#!/usr/bin/env python3
from ev3dev.ev3 import *
from PIL import Image, ImageDraw, ImageFont
from time import sleep

lcd = Screen()

f = ImageFont.truetype('/usr/share/fonts/truetype/msttcorefonts/Arial.ttf', 75)
lcd.draw.text((3,0), 'Hello', font=f)
lcd.draw.text((2,55), 'world', font=f)
lcd.update()

sleep(7)  # if run from Brickman, need time to see displayed image

The problem is ImageFont.  How i can import the remote PIL module (and Image, ImageDraw, ImageFont)? is it possible? Any example? Any workaround?
DJuego
P.S: I am considering seriously to use ev3dev and ev3dev lang python for robotic teaching.
Interactive programming is  so appealing... I only wish to get things done as simple as I can.

If you are using the latest developement version of ev3dev-lang-python (soon to be released as 0.7.1), then you can use bitmap fonts distributed with the library (see #225 and http://python-ev3dev.readthedocs.io/en/latest/other.html#bitmap-fonts for more details). The following works for me:
import rpyc
conn = rpyc.classic.connect('ev3')
ev3 = conn.modules['ev3dev.ev3']
fonts = conn.modules['ev3dev.fonts']
s = ev3.Screen()
s.draw.text((10,10), 'Hello World', font = fonts.load('luBS14'))
s.update()

If you are using the latest released version (0.7.0), you may still @ndward's example you referenced. The only change is that you need to import PIL.ImageFont remotely:
ImageFont = conn.modules['PIL.ImageFont']
f = ImageFont.truetype('/usr/share/fonts/truetype/msttcorefonts/Arial.ttf', 75) # EV3 path
s.draw.text((10,10), 'Hello World', font=f)
s.update()

Well. I am overwhelmed. :-) Easily, I prefer the 0.7.1 option. However i don´t know how upgrade to the last development version the ev3dev and the Spyder editor too. I am a absolutely newbie in Python.
Anyway i have a alternative. :-P
Thank you again, ddemidov for your swift and clear answers.  I will be on the watch for the 0.7.1 release.
DJuego

However i don´t know how upgrade to the last development version the ev3dev

Here is what I do to get the latest version installed (on EV3):
sudo apt-get remove python3-ev3dev
git clone https://github.com/rhempel/ev3dev-lang-python
cd ev3dev-lang-python
python3 setup.py bdist
sudo python3 setup.py install --force

O.o Amazing! I will consider to upgrade. In my opinion,  this info is worthy of a place in the README.
DJuego

For beginners, in general I'd recommend sticking to the official releases. This is mainly because it ensures that you can share your code with others and have it work properly. It's also helpful because the standard upgrade instructions will only work on your installation if it's based on the official package.
@ddemidov Is there anything that you think is blocking a release (#233)?

@WasabiFan, I'd like to do #230. This looks easy enough, just need to update my kernel :smile_cat:
Also, I am not yet sure about the best way to fix #234. Other than that, 0.7.1 seems ready to be released.

authors: DJuego WasabiFan ddemidov

license: mit

license_source: bigquery


text:
Only add line spacing when there are 1 or more lines.

If numberOfLines == 0 and lineSpacing != 0, the dimensions calculated in collectionViewContentSize were incorrect. numberOfLines - 1 would wrap around to a giant int which was causing size.height to become extremely large in my case. The grid layout partially broke down and autolayout complained with this log message:
This NSLayoutConstraint is being configured with a constant that exceeds internal limits.  A smaller value will be substituted, but this problem should be fixed. Break on void _NSLayoutConstraintNumberExceedsLimit() to debug.  This will be logged only once.  This may break in the future.
I was wondering if the guard checks should actually be self.numberOfLines > 1 since line spacing is really only needed if there are 2 or more lines but I didn't want to change any pre-existing behaviour other users may rely on.

Thanks for this fix!
Added tests for this case and merged in.
Cheers,
Rich

authors: rhodgkins robmaceachern

repo: rhodgkins/RDHCollectionViewGridLayout


text:
provide a way to specify health checks / availability checks / happy page checks to a JVM with jolokia?

So whenever possible I include jolokia in all JVMs (and docker images with JVMs inside) as a standard REST way to do monitoring and to use the nice hawtio console etc. (I tend to use the java agent approach to avoid modifying the classpath or container in any way)
It'd be awesome if we could auto-generate or manually specify health checks or 'availability checks' that the jolokia agent could use. e.g. that when a JVM is running that certain MBeans should exist; or that certain mbeans should have certain attribute values. Am thinking something along the lines of we can configure the jolokia agent to point at a folder which contains a bunch of, say, json files which contain 'health checks / availability checks'.
Then if this enabled, jolokia would add some API to do the checks. (It could just be a jolokia mbean that gets enabled really - so we use the standard jolokia API to query the health check / availability checks).
e.g. if using Apache Camel; we could auto-generate or manually define that an mbean should exist for a CamelContext along with, say, 3 routes. Then if the JVM / docker image starts, we can have jolokia automatically reply with details of whether its running correctly (and giving details of the failures in JSON if the camel context is not present).
Right now there's no easy way to check jolokia for 'is my stuff really running correctly right now'. By letting folks specify these checks in JMX - as mostly static JSON files - it'd add huge value IMHO.
If folks need really complex health / availability checks - e.g. using dynamic java code and stuff - folks could just implement those as a simple JMX MBean which is then statically referred to in a JSON file for jolokia to query?
i.e. if we just come up with a simple file format for validation checks using (e.g. JSON) we should be able to support most things.
e.g. to verify that a tomcat container starts up and the welcome pages for each WAR can return 200-299 return value.
Users might want to specify known local URL paths within their web apps that should return OK values. (If they return a non OK value we could return the output in the JSON). Then folks could write their own 'happy pages' in servlets / JSP / JAXRS and we can easily invoke them from jolokia.

Sorry, for the long long delay (there was simply to much around it). And yes, I should not give promises on things which I then forget ;-{
I  really can see the value for this. IMO it boils down to two parts: Allowing the agent to be extended in a controlled manner and to provide the health checks.
Extending the agent
Jolokia 2.0 already has quite sophisticated hooks for so called services which can be provided by various means (classpath lookup for the JVM and WAR agents, OSGi Service lookup for the OSGi agent). There are different types of services which already available. A broad overview can be found on the Jolokia Wiki (although the actual implementation is a bit different).
But this probably doesn't help much here, because 2.0 is not really ready for prime time and although I have some ideas about the release roadmap, but I can't promise anything since actually there is no really pressure for doing it (at least nobody asked for it yet ;-).
But the good thing is that there is some 'lightweight' service framework also integrated in Jolokia 1.x: ServiceObjectFactory. It is currently used for server detectors and simplifiers (for serialization to JSON). My suggestion is to introduce a lifecycle service which is started in a similar way. That way anything could be started during the startup of the agent. This will work for the WAR and JVM agent. For the OSGi stuff a dedicated ServiceTracker could be added for this purpose.
Health Checks
Given that this startup service hook is in place, one could then easily provide a custom service which registers an own MBean for doing the health check. This MBean could be implemented in any way. The only open task is how and in which form this MBean can get access to the JMX. This could be either by providing directly the MBeanServers detected by the agent so the health checks can do JMX call on its own. This would be the simplest and probably best way.
And alternative to provide access to the JSON parsing layer so that JMX calls could be done like other Jolokia clients. This would probably be easier for implementer of such services, but would be not as performant as direct JMX access.

My overall suggestion is to tackle the two task separately: I'm going to implement the lifecycle-service hook directly within Jolokia (and available in the next Jolokia release). Then, you could implement this service API and provide an implementation for an HealthCheck the way you like. For providing an appropriate packaged agent, I would suggest to use jolokia-extra where I already have a customized agent for JSR-77 deserialization on WebSphere.

What do you think ?

That all sounds good.
I made a little experiment defining a few kinds of assertion we could use
https://github.com/jstrachan/jolokia/tree/liveness/agent/core/src/main/java/org/jolokia/health
e.g. SearchAssertion does a search and asserts the count of mbeans returned; then ReadAssertion makes an assertion on an mbean attribute value.
Here's a few test cases that show them in action:
https://github.com/jstrachan/jolokia/tree/liveness/agent/core/src/test/java/org/jolokia/health
e.g. typical output after simulating some failures is:
Results: [Failure{assertion=ReadAssertion{id=my.check, description=Check that the cpu load is valid, mbeanName='java.lang:type=OperatingSystem', attribute='ProcessCpuLoad', comparison='<', value=-1000}, actualValue=0.0}]
Results: [Failure{assertion=SearchAssertion{id=my.check, description=Check that we have enough cheese beans, mbeanName='foo.cheese:type=*', comparison='>', count=1}, actualValue=0}]

i.e. its clear from the results which assertions failed.
We could then have an mbean that lets folks pass in JSON for assertions to perform ad hoc assertion checks.
I was hoping we could then have support for a folder of files which are each json and can load one or more assertions; evaluate them all and return the failures if there are any. Then if we get that far, we could add some REST API in jolokia for the health check; returning OK if there are no failures; if there are failures it'd be nice to return the JSON of the failures.

Looks good, my suggestion is:

To move the checking code rhuss/jolokia-extra which also will use the new, yet-to-come CustomizeService for registering one or more MBeans
One for doing ad-hoc checks by uploading JSON formatted assertions.
And one for using predefined checks, e.g. by looking into a folder or lookup from the classpath. For specifying a folder I will add a way for the CustomizeServices to access the configuration information (which then can be used to specify the server side folder). That way we could avoid to extend the Jolokia protocol since we could simply use an EXEC request for accessing the MBean which uses the preconfigured checks.

I will now focus on the customizer service so that in the next step we can hook in the health checks.

Hi,
I already had some thoughts about jolokia and application health checks / monitoring and I figured it out that it would be nice to have some features listed below.
For the sake of simplicity I will try to explain it on real world use case: check if used memory is less or equal to 80% maximum allowed.
We need to:

define what data should be considered

read mbean attribute / exec mbean operation
example:

read / java.lang:type=Memory / HeapMemoryUsage

query (filter) necessary info from complex output structure

optimization, we can use "path" but in that case we need to perform multiple reading/executing
example:

usedVar = aboveRead.used
maxVar = aboveRead.max

manipulate with values

example:

80PctMaxVar = 0.8 * maxVar

compare values (check criteria)

example:

usedVar > 80PctMaxVar

optional blocks

support for different process state (e.g. on web container if application is deployed we should perform some checks, otherwise not)

Here is example of ad-hoc JSON formatted assertions:
{
  "dataCollection": [
    {
      "id": "first",
      "cmd": "read",
      "mbean": "java.lang:type=Memory",
      "attribute": "HeapMemoryUsage"
    },
    {
      "id": "second",
      "cmd": "exec",
      "mbean": "com.mycompany:type=Something",
      "operation": "someOperation"
    }
  ],
  "vars": [
    {"usedVar": "first.used"},  // additional filtering
    {"maxVar": "first.max"},
    {"80PctMaxVar": "0.8 * maxVar"} // values manipulation
  ],
  "assertions": [
    {
      "id": "request_123",
      "check": "usedVar > 80PctMaxVar",
      "desc": " ... message ..."
    }
  ],
  "conditionalBlocks": [
    {
      "condition": "second.something != 0",
      "dataCollection": [],
      "vars": [],
      "assertions": [],
      "conditionalBlocks": []
    }
  ]
}

What do you guys think ?
Regards,
N.

Having a DSL for specifying health-checks (aka monitoring) is a good thing. However, I wouldn't do it in JSON but probably with something more expressive like Groovy, since this is already a language.
Also, as stated above, this is to much for the vanilla agent. I already included some hooks for custom plugins which could implement this kind of health checks via own MBeans which then communicate over the normal Jolokia protocol (probaly EXEC).
I will soon have a POC based on @jstrachan suggestion in jolokia-extra. Please stay tuned ....

A proof-of-concept is now available at jolokia-extra. You can build the agent with @jstrachan 's sample test health checks included on you own (mvn -Phealth clean install which creates the JVM and WAR agent below agents/) or you can download them as Snapshots(JVM or WAR agent).
If used as usual, it will install a MBean jolokia:type=plugin,name=health with two operations:

cpuLoadCheck : to be called with a single int-argument, which specifies the alarming threshold. If the CPU load is below this value, an code null string is returned, otherwise an error description.
mbeanCountCheck : Simple, dump check which only checks whether the there are any MBeans matching the pattern java:lang=*

Of course this is only a beginning, but show nicely how to hook into Jolokia: Via a plugin which is called during startup, getting a MBeanPluginContext which can be used to register a MBean (which automatically get unregistered when the agent goes down) and also for accessing the local MBeanServers (which can be many) in order to perform the health checks. The communication the simply uses the current Jolokia protocol, which is IMO a good thing (as an alternative to introducing a new command health).
Next steps will happen on jolokia-extra. I will open an issue there collecting all ideas we have so far so that we can implement a feature rich, flexible health check system.

A POC is done in jolokia-extra,  a blog post is written and I suggest to continue the discussion for the healthcheck implementation in issue rhuss/jolokia-extra#1
I'll add some backlinks in this new issue and will close that one.

authors: jstrachan nevenr rhuss

repo: rhuss/jolokia


text:
Work well with cellular or no network

This app needs to be better behaved if no or slow networks are available:

[ ] automatic sync on wifi
[ ] sync manually on cell
[x] do not attempt to sync if no network is available
[x] #24

This shows no apparent need to sync if no network is available.

2.0 will not require in-app managed networking capabilities; all network requirements will be handled by the appropriate file managers.

repo: rhwood/roster-decoder


text:
Alerts

Added the alerts component
Note: This was branched from the #12 brach so this pr includes those changes as well.

Looks fantastic, awesome stuff! And thank you for the fix on the border/background color.

authors: Fraham rhyneav

repo: rhyneav/papercss

license: ISC


text:
Fixes #1

Brief description
Fixes #1
Developer Certificate of Origin

[x] I certify that these changes according to the Developer Certificate of Origin 1.1 as described at https://developercertificate.org/.

Further details
The trick is to url encode the whole SVG and remove charset. Tested in Chrome, FF, IE9-10-11.

Two beautiful lines of code. Thank you so much for the fix!

authors: rhyneav wintercounter


text:
Serialization should consider DateTimeKind for UTC and non-UTC DateTimes

Right now serialization doesn't handle DateTimeKind. This makes interop with some libraries (like Telerik's RadSchedule stuff) problematic. If we pay attention to the DateTimeKind, and preserve it during serialization and deserialization, interop will improve, and the library will provide higher-resolution results.

Fixed in nuget version 4.0.0: https://www.nuget.org/packages/Ical.Net/4.0.0


text:
Fix coverage upload to coveralls.io

coveralls.io reports 0% coverage but the coverage reports in the GitHub action report 88%.

Closed via #8

repo: richford/groupyr


text:
Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.
Atom.Object.defineProperty.get (/usr/share/atom/resources/app/src/atom.js:55:11)
HighlightLineView.attach (/home/csozo/.atom/packages/highlight-line/lib/highlight-line-view.coffee:13:9)

Duplicate of #37. Please close.

authors: csozo stramel

repo: richrace/highlight-line


text:
mute the video

At least on iOS this works and has the benefit the user's
music doesn't stop playing yet it still doesn't sleep.
I don't have Android to test on

I'm going to test this now on both Android and iOS devices!

According to https://github.com/richtr/NoSleep.js/issues/47 this does not actually mute the video on Android devices. We might want to keep the idea provided in this PR + include a separate video src for Android devices that does not include an audio track (only iOS Safari requires an audio track in the video to enable wake lock).

I have a similar solution but I unmute the video inside the enable method before playing it so that it works on both iOS and Android.

FYI, commit 615ee56675ae2c334c74a658ddb68b6a09122bcb from this PR has now been cherry-picked on to this PR: https://github.com/richtr/NoSleep.js/pull/58 (branch name: feature/webm-mp4-dual-video)

authors: greggman montamal richtr


text:
Allow edit selected command before execute it

Description:
This PR allows users to customize the commands generated by the API before execution (#20). For instance, when using the command "shai create new folder," users can now confirm and modify it to their preference, such as changing "mkdir new_folder" to "mkdir myfolder."
Changes:
This PR implements a minor adjustment that enables users to edit the generated command prior to execution, utilizing the inquirer.text method.

Very neat!

authors: JoseMiguelCh ricklamers

repo: ricklamers/shell-ai


text:
Publish 2.13.0

Once 1.14.0 for 2.13 is published, #479 will be green in Travis for the master branch.
This may be a good time to publish Scalajs 1.0.0-M8 for 2.13 and 2.12 from the 1.14.0_sonatype branch, as well, which would require #475.

Tried helping with this along with PR #481.

Fixed with https://github.com/rickynils/scalacheck/pull/481.

🎉

https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.13/
https://repo1.maven.org/maven2/org/scalacheck/scalacheck_sjs0.6_2.13/

authors: ashawley dwijnand xuwei-k

repo: rickynils/scalacheck


text:
Change in folder structure

This PR has lots of changes, but is just a change in the folder structure.
Problem
Currently, if we clone the repository or install the dependency from the repository, the path to the compiled dist file will be nativescript-vue/nativescript-vue/dist/index.js, which feels weird. The npm link trick would solve some cases, but I ran into some issues when using webpack.
Changes

Everything under nativescript-vue is now in the root of the package.
Renamed vue-sample to samples.
Updated samples do they still work in the new structure.
Updated .gitignore and other configuration files to match this new structure.

What do you think?

Does this simplify the development process by not having to run npm-link? (For the samples I mean)
I guess we can do this, easier to work on by not having to go into directories all the time!
Also I was thinking if we should start publishing to npm.

It does avoid avoid having to do npm link. In fact, I made this change also because webpack does not resolve dependencies of linked modules (not without some extra work). The samples are working without npm link too.
I think it also helps when developing with another project. For instance, in the template I created, I just added the nativescript-vue dependency directly from my github fork like this:
"dependencies": {
  "nativescript-vue": "tralves/nativescript-vue",

and then import the lib with const Vue = require('nativescript-vue/dist/index'). With the current folder structure, this line would be const Vue = require('nativescript-vue/nativescript-vue/dist/index') which feels weird to me.
Even without these "practical" reasons, I think it is a better structure, more in line with what we see libs do around the world.

+1. It makes sense to me.

Also I was thinking if we should start publishing to npm.

Agreed. It looks like that this change will also facilitate the npm publishing process.

I don't know whether my problems were related to the installation instructions that need to be updated, or an unforeseen problem. But I can tell after reading this that my issue and this PR are very much related
https://github.com/rigor789/nativescript-vue/issues/27


text:
Feat: Human readable dashboard state

https://www.notion.so/rilldata/Human-Readable-dashboard-state-f851ea32b47e4e1d81d87d6e857f2268?pvs=4

Blocks https://github.com/rilldata/rill/issues/5490

@nishantmonu51 to track the state work

repo: rilldata/rill


text:
Deploy master release

This PR is limited to linux and mac for now.

I have just one question: can Travis deploy the mkdocs site if there is something in the gh-pages that is not on the master?

repo: ringmesh/RINGMesh


text:
Axelar bridge docs use js, pythons, and Foundry increasing skill set and tools needed.

ethers js library can be use to both encode and send transactions eliminating need for python and Foundry/cast
encoding
        // Define the data type and value
        const types = ['string'];
        const values = ['hello, world!'];

        // ABI encode the data
        const abiEncoded = ethers.utils.defaultAbiCoder.encode(types, values);

        // Compute the Keccak-256 hash of the ABI encoded data
        const keccakHash = ethers.utils.keccak256(abiEncoded);

This was partially addressed in #88, where Python code was replaced with JS using the ethers.js library.


text:
Use api.generateAddress to create account. Get account information and report error rippled-1.7.2

Please help me
server start（Start a New Genesis Ledger in Stand-Alone Mode）
rippled -a --start --conf=/etc/opt/ripple/rippled.cfg
jsApi
import { RippleAPI } from 'ripple-lib'
const api = new RippleAPI({
  server: 'ws://106.13.47.223:6005', // My rippled server
  //server: 'wss://s1.ripple.com' // Public rippled server
})
api
  .connect()
  .then(async () => {
    /* begin custom code ------------------------------------ */
    let addressObj = api.generateAddress({
      test: true,
    })
    let account= api.getAccountInfo(addressObj.classicAddress)
    return account
  })
  .then((info) => {
    console.log(info)
    console.log('getAccountInfo done')
    /* end custom code -------------------------------------- */
  })
  .then(() => {
    return api.disconnect()
  })
  .then(() => {
    console.log('done and disconnected.')
  })
  .catch(console.error)

error:
message:'Account not found.'
`{"name":"RippledError","data":{"account":"r4Lbjg2SbsZDH1mdr4WcSc6reZSuYE9NVz","error":"actNotFound","error_code":19,"error_message":"Account not found.","id":1,"ledger_hash":"F5A8382FEB857BDDE8B71A391B229B3D94193E32FC1B5BA108568C24650ECB25","ledger_index":2,"request":{"account":"r4Lbjg2SbsZDH1mdr4WcSc6reZSuYE9NVz","command":"account_info","id":1,"ledger_index":"validated"},"status":"error","type":"response","validated":true}}`

Does rippled.cfg need to add any configuration？

generateAddress creates a new address, but an account object for that address does not exist on the ledger. To create the account, fund it by sending it a payment. The payment amount must be greater than or equal to the base account reserve. On Mainnet, the base account reserve is currently 20 XRP. On a stand-alone ledger, the amount may be different.
When creating a new ledger in standalone mode, the initial funds are in the genesis address, as documented here: https://xrpl.org/start-a-new-genesis-ledger-in-stand-alone-mode.html
You can send XRP from that genesis address to your newly-generated address in order to fund and activate the account.

thanks @intelliot, is there a ledger_accept equivalent in RippleAPI?

I sent the XRP, but it was never verified
There is no access on method：api.connection.on("transaction")
sever:ws://106.13.47.223:6005

const RippleAPI = require('ripple-lib').RippleAPI;

let address = "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
let secret = "snoPBrXtMeMyMHUVTgbuqAfg1SUTb"

const api = new RippleAPI({server: 'ws://106.13.47.223:6005'})
api.connect()
api.on('connected', async () => {

  while (true) {
    try {
      let ac=await api.request("account_info", {account: address, ledger_index: "validated"})
      console.log(ac)
      break
    } catch(e) {
      await new Promise(resolve => setTimeout(resolve, 1000))
    }
  }

  // Prepare transaction -------------------------------------------------------
  const preparedTx = await api.prepareTransaction({
    "TransactionType": "Payment",
    "Account": address,
    "Amount": api.xrpToDrops("22"), // Same as "Amount": "22000000"
    "Destination": "r351srbb3RP8wxRLXHLy8m4zNJeAvQX9us"
  }, {
    // Expire this transaction if it doesn't execute within ~5 minutes:
    "maxLedgerVersionOffset": 75
  })
  const maxLedgerVersion = preparedTx.instructions.maxLedgerVersion
  console.log("Prepared transaction instructions:", preparedTx.txJSON)
  console.log("Transaction cost:", preparedTx.instructions.fee, "XRP")
  console.log("Transaction expires after ledger:", maxLedgerVersion)

  // Sign prepared instructions ------------------------------------------------
  const signed = api.sign(preparedTx.txJSON, secret)
  const txID = signed.id
  const tx_blob = signed.signedTransaction
  console.log("Identifying hash:", txID)
  console.log("Signed blob:", tx_blob)

  // Submit signed blob --------------------------------------------------------
  // The earliest ledger a transaction could appear in is the first ledger
  // after the one that's already validated at the time it's *first* submitted.
  const earliestLedgerVersion = (await api.getLedgerVersion()) + 1
  const result = await api.submit(tx_blob)
  console.log("Tentative result code:", result.resultCode)
  console.log("Tentative result message:", result.resultMessage)

  // Wait for validation -------------------------------------------------------
  let has_final_status = false
  api.request("subscribe", {accounts: [address]})
  api.connection.on("transaction", (event) => {
    if (event.transaction.hash == txID) {
      console.log("Transaction has executed!", event)
      has_final_status = true
    }
  })
  api.on('ledger', ledger => {
    if (ledger.ledgerVersion > maxLedgerVersion && !has_final_status) {
      console.log("Ledger version", ledger.ledgerVersion, "was validated.")
      console.log("If the transaction hasn't succeeded by now, it's expired")
      has_final_status = true
    }
  })

  // There are other ways to do this, but they're more complicated.
  // See https://xrpl.org/reliable-transaction-submission.html for details.
  while (!has_final_status) {
    await new Promise(resolve => setTimeout(resolve, 1000))
  }

  // Check transaction results -------------------------------------------------
  try {
    const tx = await api.getTransaction(txID, {
        minLedgerVersion: earliestLedgerVersion})
    console.log("Transaction result:", tx.outcome.result)
    console.log("Balance changes:", JSON.stringify(tx.outcome.balanceChanges))
  } catch(error) {
    console.log("Couldn't get transaction outcome:", error)
  }

})

log
Transaction cost: 0.000012 XRP
src/sendXrp.js:33
Transaction expires after ledger: 77
src/sendXrp.js:34
Identifying hash: D5C22448C169A74F9396147EAA209DF604422C6E10A4A585B1A3B0379D4D4156
src/sendXrp.js:40
Signed blob: 12000022800000002400000009201B0000004D6140000000014FB18068400000000000000C73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD0207447304502210096AEF0515024368E019E2FC0D50DE59DE9603E4634F2EB44B830BE84A0F9B82D02201A9ABFFBCA2F7FF09A69FC57CD4BC76B8EFC83ADAA69C0316C719D2AD56CA10C8114B5F762798A53D543A014CAF8B297CFF8F2F937E8831454B3B3A5EE00E45F502037ADDCCF4126CFEDBFAB
src/sendXrp.js:41
Tentative result code: tesSUCCESS
src/sendXrp.js:48
Tentative result message: The transaction was applied. Only final in a validated ledger.
src/sendXrp.js:49

generateAddress creates a new address, but an account object for that address does not exist on the ledger. To create the account, fund it by sending it a payment. The payment amount must be greater than or equal to the base account reserve. On Mainnet, the base account reserve is currently 20 XRP. On a stand-alone ledger, the amount may be different.
When creating a new ledger in standalone mode, the initial funds are in the genesis address, as documented here: https://xrpl.org/start-a-new-genesis-ledger-in-stand-alone-mode.html
You can send XRP from that genesis address to your newly-generated address in order to fund and activate the account.

dd

@pwang200 Sorry, I just saw this. Yes, you can call ledger_accept with RippleAPI using the request method:
return api.request('ledger_accept').then(response => {
  /* Do something useful with response */
  console.log(JSON.stringify(response, null, 2))
}).catch(console.error);

Note: ledger_accept is as admin request, so you'll need to be connected to rippled with an admin connection.
Does that help?

@pwang200对不起，我刚看到这个。是的，您可以使用以下request方法使用 RippleAPI 调用 ledger_accept ：
return api.request('ledger_accept').then(response => {
  /* Do something useful with response */
  console.log(JSON.stringify(response, null, 2))
}).catch(console.error);

注意： ledger_accept 作为管理员请求，因此您需要使用管理员连接连接到涟漪。
这有帮助吗？

``

@pwang200 Sorry, I just saw this. Yes, you can call ledger_accept with RippleAPI using the request method:
return api.request('ledger_accept').then(response => {
  /* Do something useful with response */
  console.log(JSON.stringify(response, null, 2))
}).catch(console.error);

Note: ledger_accept is as admin request, so you'll need to be connected to rippled with an admin connection.
Does that help?

thank you

authors: intelliot pwang200 zwht

repo: ripple/rippled


text:
Switch some Ledger instances to ReadView instances

In order to finish the cutover to using open views rather than open ledgers, code that can handle open ledgers must switch to using a ReadView. Here are a few changes in that direction.

Remove ltCURRENT (it was never used anyway)
Change getOwnerInfo
Use ReadView in TransactionSign
Change AcceptedLedger and ProposedTransaction to use ReadView
Change RPC::accounts

Straightforward
:+1:

Rebased against 0.29.1-b1.

Looks good. :+1:

authors: JoelKatz vinniefalco ximinez


text:
Improve error message when signing fails (RIPD-1066):

With the addition of multisigning there are a variety of reasons a signature may fail.  We now return a more descriptive message for the reason certain signature checks fail.
Reviewers: @miguelportilla @seelabs

Current coverage is 62.35%

Merging #1521 into develop will increase coverage by +0.14% as of f750aad

@@            develop   #1521   diff @@
=======================================
  Files           891     891
  Stmts         63094   63169    +75
  Branches          0       0
  Methods           0       0
=======================================
+ Hit           39254   39391   +137
  Partial           0       0
+ Missed        23840   23778    -62

Review entire Coverage Diff as of f750aad

Powered by Codecov. Updated on successful CI builds.

Merged as 2eaf211e9bfe60f351f9d02169c3ecee1aec3e67

authors: codecov-io nbougalis scottschurr