Mobile rl 2

Creating a new PR due to a forced pushed. See #68 for initial discussion.
To recap the open points from the initial PR:

the license on the tiago urdf -> contacted PAL
the unittests -> currently blocked by the missing linting support for typing

In the meantime PAL has updated the license on the original tiago.urdf.xacro file to apache v2 (see https://github.com/pal-robotics/tiago_robot/blob/kinetic-devel/tiago_description/robots/tiago.urdf.xacro). I have updated the modified version included in this PR accordingly. I hope this now fulfills the license requirements of openDR @passalis .
As such I believe the last open issue is:

the unittests -> currently blocked by the missing linting support for typing

I have removed the typing from the parts of the code that the linting could not handle and the formatting tests are now passing. Though I would still very much recommend to adjust these tests so that they can handle this properly as typing is a very important tool for maintenance.
But as we initially discussed, the tests now fail when trying to install ros-melodic packages on ubuntu 20.04. At the moment these are only Unable to locate package ros-melodic-ros-base errors when parsing the dependencies.ini file, so there is still a chance that it will just work with noetic.
I can add an env variable ROS_DISTRO that automatically detects whether we are on ubuntu 18.04 or 20.04 to the setup.bash of the toolkit. But is there a way to then use this variable in the dependencies.ini? I assume the naive
linux=ros-${ROS_DISTRO}-ros-base
      ros-${ROS_DISTRO}-pybind11-catkin
      ros-${ROS_DISTRO}-moveit
      ros-${ROS_DISTRO}-pr2-simulator
      ros-${ROS_DISTRO}-moveit-pr2

is not a proper way to do this @passalis ?
After that there is still the issue that tiago does not provide installation instructions for noetic, so I am not even sure if PAL does support ubuntu 20.04 with their platform (http://wiki.ros.org/Robots/TIAGo/Tutorials/Installation/TiagoSimulation)

Yes, setting a ROS_DISTRO variable is the proper way to solve this kind of issues.
This kind of variables can also be easily set in the CI.
However, instead of specifying the ROS packages in the dependencies.ini file they should be installed from a Makefile so that it is easier to handle the ROS_DISTRO variable.
So we should aim at using Ubuntu 20.04 and ROS noetic instead of old Ubuntu and ROS distributions.
Just note that in D2.1 we only specified that the toolkit would be support on Ubuntu 20.04 with ROS noetic and not on Ubuntu 18.04 (with ROS melodic.)

Actually, the bigger reason for not finding the packages might be that ROS is not added to the apt sources / keys. I.e. these two steps are missing:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

But also not sure where / how I would add this?

Do you mean in the CI test?
I'm not sure these two instructions are really needed if the ROS version is compatible with the Ubuntu version.
However to properly set up ROS packages, etc we may need to run a tests/ros.sh bash script to create the catkin workspace, inititialize, compile, and then run the ROS test.
Something like: https://github.com/cyberbotics/webots/blob/master/tests/ros.sh

I have removed the typing from the parts of the code that the linting could not handle and the formatting tests are now passing. Though I would still very much recommend to adjust these tests so that they can handle this properly as typing is a very important tool for maintenance.

Please feel free to address #42 and propose a solution.

@stefaniapedrazzi thank you for your feedback.

Yes, setting a ROS_DISTRO variable is the proper way to solve this kind of issues.
This kind of variables can also be easily set in the CI.
However, instead of specifying the ROS packages in the dependencies.ini file they should be installed from a Makefile so that it is easier to handle the ROS_DISTRO variable.
So we should aim at using Ubuntu 20.04 and ROS noetic instead of old Ubuntu and ROS distributions.
Just note that in D2.1 we only specified that the toolkit would be support on Ubuntu 20.04 with ROS noetic and not on Ubuntu 18.04 (with ROS melodic.)

I have now added a ROS_DISTRO variable to setup.bash and test_sources.yaml and am installing the ROS packages through the makefile of my module, which calls src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh. Let me know in case any of this should be in a different place.
Question: I now realize that, while I have been able to just install my tool with this makefile by running it from my module folder, running make install_compilation_dependencies from the root folder like test_sources.yaml does (I think), does not actually trigger this tool-specific makefile / does not run src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh. How do I have to connect these makefiles so that running make install_compilation_dependencies from the project root will also trigger the command in src/opendr/control/mobile_manipulation/Makefile?

Do you mean in the CI test?
I'm not sure these two instructions are really needed if the ROS version is compatible with the Ubuntu version.
However to properly set up ROS packages, etc we may need to run a tests/ros.sh bash script to create the catkin workspace, inititialize, compile, and then run the ROS test.
Something like: https://github.com/cyberbotics/webots/blob/master/tests/ros.sh

We discussed this in the original PR before (#68 ) and this PR already includes a file that install all specific ros parts, creates a catkin workspace and compiles it, src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh, which according to the feedback when I implemented it should be fine.
The problem here is that users still have to install the ROS packages for our approach, which are these packages in the dependencies.ini that I listed above. And doing so requires to either already have run these two steps, or to run them while installing our tool, otherwise apt-get will not be able to locate them and fail:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

I have now included these steps in src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh; though I don't know if users are fine with having such a step part of the automatic installation? If not I guess the alternative would be to just mention it somewhere in the docs that this tool expects them to already have ROS installed.

I have now added a ROS_DISTRO variable to setup.bash and test_sources.yaml and am installing the ROS packages through the makefile of my module, which calls src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh. Let me know in case any of this should be in a different place.

Seems fine.

The problem here is that users still have to install the ROS packages for our approach, which are these packages in the dependencies.ini that I listed above. And doing so requires to either already have run these two steps, or to run them while installing our tool, otherwise apt-get will not be able to locate them and fail

We have two different cases:

run the method from the CI:
we need to automatize the installation of ROS and to have a script that installs and runs all the required commands.
So we need a script including these two additional steps or they should be written directly in the CI workflow script.
users running the method on their own machine
installing ROS is out of the scope of this library and we should not provide scripts for doing it.
Having a script to automatize the setup the resources for running the OpenDR method is this case is nice-to-have feature but it would also be fine to just write a documentation and let the user do it.
The final goal would be to publish this as official ROS package where all the dependencies will be automatically handled and the script will probably not needed.

Question: I now realize that, while I have been able to just install my tool with this makefile by running it from my module folder, running make install_compilation_dependencies from the root folder like test_sources.yaml does (I think), does not actually trigger this tool-specific makefile / does not run src/opendr/control/mobile_manipulation/install_mobile_manipulation.sh. How do I have to connect these makefiles so that running make install_compilation_dependencies from the project root will also trigger the command in src/opendr/control/mobile_manipulation/Makefile?

I will just open a new PR with a suggestion about how to link from the main Makefile.

@stefaniapedrazzi thank you for you comments.

The CI now sets up the keys to install ROS and the readme mentions that users need a functioning ROS installation.
The makefile of my module gets called correctly.
The makefile of my module installs the ROS packages required for my module (this includes ros-noetic-ros-base, so can take a moment for the CI to run)

The tests now all pass, expect for those loading the model checkpoints. This is due to stable-baselines version changes. I have already uploaded new checkpoints to owncloud replace them, and as soon as they are uploaded to the file server all tests should pass.
The ROS dependencies for Tiago do not completely exist for ROS-noetic yet. I have discussed this with PAL, and they will release packages for noetic before the end of the year. I would suggest for now we merge this pull request without full support for the Tiago robot and then update it as soon as PAL has released the packages for noetic.
Let me know if that sounds good to you and if the changes to the CI and install scripts make sense. If yes, then I would suggest to wait until the new checkpoints are uploaded and the corresponding tests pass, and then get this merged it into master as soon as possible.

@passalis @stefaniapedrazzi all checks passing now. Let me know if you have any further comments or whether it can get merged

@stefaniapedrazzi Thanks, I made those changes and adjusted the test_sources.yaml to work with the new changes from master (and slightly updated the dependencies).
All tests are passing again. Please let me know if all is good now and whether it can be merged.

Thank you for updating this branch!
I see that some tests are failing, did you maybe already checked if they are related to your modifications?

All tests are passing again. Please let me know if all is good now and whether it can be merged. Or in case in needs approval from other reviewers as well, how to notify them before the master branch diverges again.

When it is ready again for review you can tag directly the reviewers: @passalis and me/@ad-daniel.
Another option when a PR is ready again for review is to switch it to draft and then back to ready for review, so that everyone set as code owner is notified.

@stefaniapedrazzi what tests do you mean? it tells me
All checks have passed
16 successful checks

right here?
I did rerun them on the same commit after updating a test on the fileserver, so maybe what you saw were those that ran the first time? But as I said, the last run of the tests was completely successfull and everything passed?

@passalis @ad-daniel Could you please review again and let me know if I can finally merge this? This PR is basically passing since quite a long time now

There is a red cross beside the latest commit meaning that some test failed.
Here are the details of the failing tests:
https://github.com/tasostefas/opendr_internal/runs/3625335409

I did rerun them on the same commit after updating a file on the fileserver, so maybe what you saw were those that ran the first time? But as I said, the last run of the tests was completely successfull and everything passed?

Ok so that might be the reason.
I will review the changes now.

@stefaniapedrazzi @passalis It seems sometimes the roscore started too slowly and caused the test to fail. I've added 1 second of sleep which seems to resolve this. Could you quickly check the PR again?

Well master progressed and there were new conflicts to resolve since my last message. I'm afraid this seems to require you to once more approve this PR now @passalis @stefaniapedrazzi

@passalis @stefaniapedrazzi Did master change how things are getting installed?  The tests now fail at
    @+make --silent -C src/opendr/control/mobile_manipulation $(TARGET) OPENDR_HOME="$(OPENDR_HOME)"

in the Makefile, which how I was previously told to do this? I'm afraid I am really not an expert on these topics and can't see what the issue is. Could you help me with what changed that this now suddenly doesn't work anymore?

Ok, turns out spaces are not accepted in the makefile. I'm afraid you will have to press approve once more @passalis


Monorepo support

Is this something that could be supported? See: https://github.com/graphql/graphiql/issues/1274#issuecomment-578842064.

You can now specify separate projects inside the config file as shown here in the docs.


Refactor Makefile.

I did refactoring for Makefile.

Right now there is a mixture of "FOO = bar" (with space) and "FOO=bar" (without space).
I aligned with " = " (with space).
Seeing ruby Makefile, it is aligned with the way.
https://github.com/ruby/ruby/blob/trunk/Makefile.in
Add line break and escape "" to shell code.
It looks easier to understand shell lines in Makefile.
Add .PHONY target safely for non-file target.

Thanks for this cleanup too!


make log watching more amenable to resource cleanup

the main gist here, is now hand back a full-fledged thread to the caller who can .join() the thread when they are done watching logs (typically after cluster stop, but before file cleanup).

Running a trial of dtest/ccm changes here: http://cassci.datastax.com/view/Upgrades/job/upgrade_tests-all-custom_branch_runs/28/
(then should probably do a full dtest run, too)

dtest run here: http://cassci.datastax.com/view/Dev/view/knifewine/job/trunk_dtest_with_log_watching_cs502/1/

links above updated for newer jobs (upgrade failed mysteriously on first try, dtest had a little bug I fixed).

with #518 merged, running the upgrade trial job again here: http://cassci.datastax.com/view/Upgrades/job/upgrade_tests-all-custom_branch_runs/31/

and yet another one (job infra flaked out) http://cassci.datastax.com/view/Upgrades/job/upgrade_tests-all-custom_branch_runs/32/

@ptnapoleon ping

Should I be scared that all these jobs fail?

Should I be scared that all these jobs fail?
I don't think so, the big dtest run was just fine. I think openstack keeps flaking the upgrade jobs unrelatd to the code, but I will make sure we get a clean run there before merging.


SW-1760: Dashboard Total Active Accessions Tooltip

This PR adds a tooltip to Total Active Accessions on the Seeds Dashboard.
Note: The IconTooltip component was added to this PR temporarily until it's merged into web-components in this PR
TODO

[x] Replace IconTooltip component from this PR once component is merged into web-components and replace with a default import/export

Example

@joshbuchea should this work when using from a mobile device? I think we need to show the tooltip on click?

@constanzauanini yes, we definitely want it to work on mobile. Thanks! Will take a look 👀

@constanzauanini I just opened a PR in web-components to fix the tooltip not showing on mobile. Thanks again for catching this and flagging 🙌

I see there are conflicts in this branch now, will fix

@constanzauanini mobile support should be working now, please re-review when you have a free moment 🙏


Enable Sourcegraph

I want to use Sourcegraph for braintree-web code search, browsing, and usage examples. Can an admin enable Sourcegraph for this repository? Just go to https://sourcegraph.com/github.com/braintree/braintree-web. (It should only take 30 seconds.)
Thank you!

@Buguerman could you share what the goals are of enabling Sourcegraph? Do you have a specific case where you need it?


[BP-1.11] [FLINK-20033] [FLINK-19237] Fix rejected slot offer bug in JobMaster and suspend job when stopping JobMaster

Backport of #13978 and #13639 to release-1.11.

Thanks for the review @rmetzger. Merging this PR now.

Merged via 32e23052af547bb1b99274778c666f3d814201a8


Add RS256 (used by GitHub)

Hello and thanks for putting together this library. I was able to get it working with GitHub Apps' JWT-based authentication (https://developer.github.com/apps/building-integrations/setting-up-and-registering-github-apps/about-authentication-options-for-github-apps/#authenticating-as-a-github-app) by adding RS256 support.
As part of this, I had to update to the latest stack LTS (to get HsOpenSSL to compile) and change the interface of Secret (see reasoning in commit message). I also addressed all the -Wall warnings, which unfortunately involved changing ClaimsMap to get around an overlapping instance on the Map.
Please let me know if you'd be willing to accept this PR and anything about it you'd like changed. Thanks!

Ah, I just realized this is probably a mirror. Sorry for the noise, I think I have to go open on BitBucket.


Update Datadog SDK to version 2.13.1-debug

This PR has been created automatically by the CI
Updating Datadog SDK from version 2.13.0 to version 2.13.1-debug: diff

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.45%. Comparing base (1765f76) to head (288898b).

Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #288      +/-   ##
=============================================
+ Coverage      77.90%   78.45%   +0.55%
- Complexity       252      255       +3
=============================================
  Files             31       31
  Lines            914      914
  Branches         114      114
=============================================
+ Hits             712      717       +5
+ Misses           150      147       -3
+ Partials          52       50       -2

see 2 files with indirect coverage changes


Only seven inches long, UwU
Please adopt me!


Tools: .NET Standard 2.0 Class Libraries (without a Startup project) don't work

Using the tools (dotnet ef or PMC) on a netstandard2.0 class library project (without a concrete startup project) will throw the following exception.
System.IO.FileNotFoundException: Could not load file or assembly 'netstandard, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
File name: 'netstandard, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
   at ClassLibrary1.Context2.OnConfiguring(DbContextOptionsBuilder options)
   at Microsoft.EntityFrameworkCore.DbContext.InitializeServices()
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1 factory)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.GetMigrations(String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.GetMigrationsImpl(String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.GetMigrations.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass4_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)

In order to make this work, we need to make ef.exe cross-target netcoreapp2.0.
Workaround
There are two ways to workaround the issue:

Make your library cross-target netcoreapp2.0:<TargetFrameworks>netcoreapp2.0;netstandard2.0</TargetFrameworks>

Use a net461 or netcoreapp2.0 startup project:dotnet ef database update --startup-project ../MyConsoleApp

Hmm, after updating to use the same trick we used on netstandard1.x (running on netcoreapp), it still doesn't work.  The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Argument(String name, String description, Action`1 configuration, Boolean multipleValues)
   at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Argument(String name, String description, Boolean multipleValues)
   at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseUpdateCommand.Configure(CommandLineApplication command)
   at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Command(String name, Action`1 configuration, Boolean throwOnUnexpectedArg)
   at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseCommand.Configure(CommandLineApplication command)
   at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Command(String name, Action`1 configuration, Boolean throwOnUnexpectedArg)
   at Microsoft.EntityFrameworkCore.Tools.Commands.RootCommand.Configure(CommandLineApplication command)
   at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)

We'll need to do some work to support these. Effectively, we'll need to target netcoreapp2.0, restore, and build on the fly.

Closing this in favor #8452.


Only using @JsonIgnore during serialization, but not deserialization

I have come to a point where I need to display a field for the input model but hide it for the output model.
I have tried using @JsonIgnore coupled with @JsonProperty like this:
(http://stackoverflow.com/questions/12505141/only-using-jsonignore-during-serialization-but-not-deserialization)
class User{
@JsonIgnore
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty
public void setPassword(String password) {
this.password = password;
}
}
But swagger still shows password for both model. Is the stackoverflow answer (2012) still valid with with the actual version of jackson and swagger? Or is there something else in my project that is causing this not to work ?
I'm using Jackson 2.6.4 and springfox-swagger2 2.2.2

Can you please open this in swagger-core?  This repository is just for the specification itself, and looks like you're interested in java code.


Delete 1-image.jpg

It was just chillin' in public, and nobody noticed it was there but me. :D
But it gotta go, my good friend.

Goodbye, fields of sunflower yellow


mutual TLS with self-signed cert failed with error PEER_DID_NOT_RETURN_A_CERTIFICATE

What version of gRPC and what language are you using?

grpc 1.48.0
c++

What operating system (Linux, Windows,...) and version?

ubuntu 20.04

in form of a container bundled with grpc v1.48.0 based on ubuntu:20.04, whose Dockerfile can be seen here.

What runtime / compiler are you using (e.g. python version or version of gcc)

gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

What did you do?
To help reproduction, I made repository as here.
Source codes are

server.cc
client.cc

The detailed reproduction steps go as

start the container
docker run -it --rm                   \
  -v $PWD:/hello-world                \
  sammyne/grpc-cc:1.48.0-ubuntu20.04  \
  bash

After getting into the container, build and start the server
set -e

workdir=$PWD
pki_dir=$workdir/pki/server

cmake -B build

cmake --build build --target server

export GRPC_VERBOSITY=DEBUG

./build/server $pki_dir/key.pem $pki_dir/cert.pem

Open another terminal, exec into the container, and run the client
set -e

workdir=$PWD
pki_dir=$workdir/pki/client

#cmake -B build

cmake --build build --target client

./build/client $pki_dir/key.pem $pki_dir/cert.pem

What did you expect to see?
Client side print
Hello world

What did you see instead?
Client reports
14: failed to connect to all addresses; last error: UNAVAILABLE: Socket closed
Greeter received: RPC failed

Server reports
I0823 11:39:50.068360577  142781 ev_epoll1_linux.cc:121]     grpc epoll fd: 3
D0823 11:39:50.068419568  142781 ev_posix.cc:141]            Using polling engine: epoll1
D0823 11:39:50.068463931  142781 lb_policy_registry.cc:48]   registering LB policy factory for "grpclb"
D0823 11:39:50.068479781  142781 lb_policy_registry.cc:48]   registering LB policy factory for "rls_experimental"
D0823 11:39:50.068490170  142781 lb_policy_registry.cc:48]   registering LB policy factory for "priority_experimental"
D0823 11:39:50.068500560  142781 lb_policy_registry.cc:48]   registering LB policy factory for "weighted_target_experimental"
D0823 11:39:50.068510238  142781 lb_policy_registry.cc:48]   registering LB policy factory for "pick_first"
D0823 11:39:50.068518833  142781 lb_policy_registry.cc:48]   registering LB policy factory for "round_robin"
D0823 11:39:50.068530365  142781 lb_policy_registry.cc:48]   registering LB policy factory for "ring_hash_experimental"
D0823 11:39:50.068541215  142781 dns_resolver_ares.cc:545]   Using ares dns resolver
D0823 11:39:50.068624932  142781 certificate_provider_registry.cc:39] registering certificate provider factory for "file_watcher"
D0823 11:39:50.068648396  142781 lb_policy_registry.cc:48]   registering LB policy factory for "cds_experimental"
D0823 11:39:50.068694532  142781 lb_policy_registry.cc:48]   registering LB policy factory for "xds_cluster_impl_experimental"
D0823 11:39:50.068703519  142781 lb_policy_registry.cc:48]   registering LB policy factory for "xds_cluster_resolver_experimental"
D0823 11:39:50.068713007  142781 lb_policy_registry.cc:48]   registering LB policy factory for "xds_cluster_manager_experimental"
I0823 11:39:50.068798096  142781 server_builder.cc:348]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2, CQ timeout (msec): 10000
I0823 11:39:50.069476626  142781 ssl_transport_security.cc:283] Could not get common name of subject from certificate.
I0823 11:39:50.069780285  142781 socket_utils_common_posix.cc:429] Disabling AF_INET6 sockets because ::1 is not available.
I0823 11:39:50.069806123  142781 socket_utils_common_posix.cc:353] TCP_USER_TIMEOUT is available. TCP_USER_TIMEOUT will be used thereafter
I0823 11:39:50.070068915  142781 chttp2_server.cc:985]       WARNING: UNKNOWN:Only 1 addresses added out of total 2 resolved {created_time:"2022-08-23T11:39:50.069954611+00:00", file_line:983, file:"/github.com/grpc/grpc/src/core/ext/transport/chttp2/server/chttp2_server.cc", children:[UNKNOWN:Address family not supported by protocol {file:"/github.com/grpc/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc", file_line:446, created_time:"2022-08-23T11:39:50.06990652+00:00", errno:97, os_error:"Address family not supported by protocol", syscall:"socket", target_address:"[::1]:50051"}]}
Server listening on localhost:50051

E0823 11:39:51.621816329  142786 ssl_transport_security.cc:1495] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
D0823 11:39:51.621928779  142786 security_handshaker.cc:206] Security handshake failed: UNKNOWN:Tls handshake failed {file:"/github.com/grpc/grpc/src/core/lib/security/transport/security_handshaker.cc", file_line:408, created_time:"2022-08-23T11:39:51.621864578+00:00", tsi_error:"TSI_PROTOCOL_FAILURE", tsi_code:10}
D0823 11:39:51.622025741  142786 chttp2_server.cc:451]       Handshaking failed: UNKNOWN:Tls handshake failed {file:"/github.com/grpc/grpc/src/core/lib/security/transport/security_handshaker.cc", file_line:408, created_time:"2022-08-23T11:39:51.621864578+00:00", tsi_error:"TSI_PROTOCOL_FAILURE", tsi_code:10}

E0823 11:39:58.040644176  142786 ssl_transport_security.cc:1910] No match found for server name: <IP_ADDRESS>.
E0823 11:39:58.041471564  142786 ssl_transport_security.cc:1495] Handshake failed with fatal error SSL_ERROR_SSL: error:100000c0:SSL routines:OPENSSL_internal:PEER_DID_NOT_RETURN_A_CERTIFICATE.
D0823 11:39:58.041564839  142786 security_handshaker.cc:206] Security handshake failed: UNKNOWN:Tls handshake failed {tsi_code:10, tsi_error:"TSI_PROTOCOL_FAILURE", created_time:"2022-08-23T11:39:58.041503254+00:00", file_line:408, file:"/github.com/grpc/grpc/src/core/lib/security/transport/security_handshaker.cc"}
D0823 11:39:58.041651260  142786 chttp2_server.cc:451]       Handshaking failed: UNKNOWN:Tls handshake failed {tsi_code:10, tsi_error:"TSI_PROTOCOL_FAILURE", created_time:"2022-08-23T11:39:58.041503254+00:00", file_line:408, file:"/github.com/grpc/grpc/src/core/lib/security/transport/security_handshaker.cc"}

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?

Hi @sammyne , To instantiate a valid mutual TLS connection, the client/server side should set the proper trust bundles, in additional to the peer certs.
Feel free to check out https://github.com/grpc/grpc/blob/master/test/cpp/end2end/tls_key_export_test.cc as an example of how this should work.
I will close this issue, but feel free to reopen and let me know if anything else coming up. Thank you so much!


regression: topUtxoPos works only for standard exits

Values other than 0 are interpreted as UTXO position of standard exit. This prevents user from targeting in-flight exit on top of the queue.
Solution: pass exit_id instead of UTXO position. It will work for both SE and IFE.

Status of this one is unclear to me at the moment. I'm sure this use case is not covered by tests.


No Save button for Integrate tab Advanced Editor

Repro steps:

go to integrate tab
Ctrl + A all contents
Ctrl + V new content
No can haz save button

Should check to see if this issue exists in the other editors as well. In my case I was starting from the blank template and copy/pasting stuff in. This is common.

Seems the issue is actually specific to pasting. If you directly type in there, the buttons do show up.


Enable inquiry on all Informa sites

Note: TDWorld and RERMag already had it enabled
https://southcomm.atlassian.net/browse/DEV-308
American Machinist example (with inquiry temporarily enabled for this company)

@Alixers505 Did we confirm with Digital Solutions that all of these notification@ email addresses are setup?
Also i don't think the<EMAIL_ADDRESS>is working anymore and we should probably update that everywhere, but for now we should at least usex the updated version go forward.

@B77Mills - what is the updated version of that email? Regarding the<EMAIL_ADDRESS>Joe has submitted the request for it, but wants to move forward before those emails are setup, because at least then the companies would be getting the direct send inquiries.

@Alixers505 / @B77Mills - Technically it's "officially"<EMAIL_ADDRESS>but emailactivity@cygnus still works, as does<EMAIL_ADDRESS>


Result.Inner crash with multiple threads

This might be an example of holding it wrong, but it's a multi-threading crash.
    func testResultPublisherMultiThreaded() throws
    {
      class ExternallyTriggeredSubscriber: Subscriber
      {
        typealias Input = Int
        typealias Failure = Never

        let combineIdentifier = CombineIdentifier()
        var sub: Subscription?

        func receive(subscription: Subscription) { sub = subscription }
        func receive(_ input: Input) -> Subscribers.Demand { return .none }
        func receive(completion: Subscribers.Completion<Failure>) {}

        func request() { sub?.request(.unlimited) }
        func cancel() { sub?.cancel() }
      }

      for i in 1...1000
      {
        let pub = Result<Int, Never>.OCombine.Publisher(i)
        let sub = ExternallyTriggeredSubscriber()
        pub.subscribe(sub)
        DispatchQueue.global(qos: .utility).async { sub.request() }
        DispatchQueue.global(qos: .utility).async { sub.cancel() }
      }
    }

The downstream variable should be protected on read and write.

Could you please describe what’s happening exactly? Where does the crash occur?

Sorry I don't know what happened earlier, it seemingly auto-posted before I typed anything!

To be fair, Apple's version crashes in seemingly the same way. Both fail the contract in that cancel() isn't thread-safe.

FWIW, this fixes it:
.../OpenCombine/Publishers/Result.Publisher.swift  | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/Sources/OpenCombine/Publishers/Result.Publisher.swift b/Sources/OpenCombine/Publishers/Result.Publisher.swift
index 9898ff5..e49febd 100644
--- a/Sources/OpenCombine/Publishers/Result.Publisher.swift
+++ b/Sources/OpenCombine/Publishers/Result.Publisher.swift
@@ -115,6 +115,8 @@ extension Result {
#endif
}
+import COpenCombineHelpers
+
extension Result.OCombine {
private final class Inner<Downstream: Subscriber>
: Subscription,
@@ -126,6 +128,7 @@ extension Result.OCombine {
// NOTE: this class has been audited for thread safety.
// Combine doesn't use any locking here.

   private let lock = __UnfairLock.allocate()
   private var downstream: Downstream?
   private let output: Success

@@ -133,17 +136,26 @@ extension Result.OCombine {
self.output = value
self.downstream = downstream
}

   deinit { lock.deallocate() }

   func request(_ demand: Subscribers.Demand) {
       demand.assertNonZero()

       guard let downstream = self.downstream else { return }

       lock.lock()

       guard let downstream = self.downstream

         else {

           lock.unlock()

           return

       }
       self.downstream = nil

       lock.unlock()
       _ = downstream.receive(output)
       downstream.receive(completion: .finished)
   }

   func cancel() {

       lock.lock()
       downstream = nil

       lock.unlock()
   }

   var description: String { return "Once" }

--
2.23.0

If Apple’s Combine behaves in the same way, then I guess it’s not a bug in OpenCombine. I would suggest you to file a radar. If Apple fixes it, so will we.
Thank you for taking the time!

Fair enough. I have filed a bug report there as well.
The "audited for thread safety" comment should be removed from line 126, however.


Where do the reports of the Lighthouse reports actually go?

are the paths correctly set so the reports are accessible for the tests?

It's somewhat well hidden (would be nice if this could be more easily visible).
When you see the tests on a pull request, click Show All Checks and then click Details next to lighthouse audit.

Then, on the top right, under Artifacts, you can download the link to the report.

Keep in mind that the performance score seems a bit variable so we needn't be overly concerned with small changes to the performance numbers.

ahhh indeed well hidden ;)))) i haven't noticed that. the other lighthouse action by paul irish at.al. had a bit more accessible reach for the reports. but well as long as i know where to look now all is fine ;)
and well the report affirms one observation i had before the script evaluation time for js in general and the js execution time for vue-defenitions.js in particular is off the charts with 24s and 22s. that might need some investigation.

Perhaps we can open a separate issue for improving our performance score.
However I want to urge caution that the lighthouse performance test score appears highly variable (in my experience, the score can vary from 18 to 36 without meaningful performance code changes). So I think we should either use a more reliable score to test against than the one that lighthouse provides, or we should average a large number of lighthouse scores.
ok to close this issue?

lighthouse performance tests arent a benchmark for me usually. just an indicator. at least those metrics of script evaluation and execution time. when i test i use webpagetest.org and i dont do a single run but 6 to 9 consecutive ones. that way you get a rough idea. and i use a motorola g4 with a slow 3g network. that is mirroring the average visitor best. good you have to consider that you have that timeline animation at the beginning which is slow anyway. ;) so one part webpagetest the other part chrome devtools.
and yep i agree lets open up another issue. just wanted to point out that a basic need and caution in that regard is necessary. :)

Thanks @rpkoller!


Split view drag handle initial commit

I've included the VS Code UI style where a coloured line is drawn over the division when the drag handle is hovered. The positioning of the drag handle vertically is still an issue, particularly with the serial console open.
See #378

We went with another version of this. Closing.


Fix NavigationManager in LogIn.razor (#175)

for this issue #175

I think also: https://github.com/dotnet/eShop/issues/223 ?

@SrushtiPasari94  to validate

I think also: #223 ?

yes

Approved. This change fixed the login issue.


Default media type in root schema is missing.

Issue part of #397
https://github.com/asyncapi/asyncapi/blob/master/versions/2.0.0/asyncapi.md#asyncapi-object
https://github.com/asyncapi/asyncapi/blob/master/versions/2.0.0/asyncapi.md#default-content-type

oh, this is quite a gap, surprised that so far nobody else noticed that 😄 good 👁
would you mind filling in a PR for that?

Closing as has been resolved & merged


Add host compare method in RouterUtil

Add host compare method in RouteUtil. This is needed for the cluster linking task.
Checklist

[ ] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

Alfred test this


How to list all option on edit after filter

Hello,
I am looking for some advise on how to list ALL options in a select when row is being edited AFTER filtering.  Currently when I filter on one column I filter the options of the other columns.  After a filter, I edit a row which in return only shows the filtered options.  I am wanting to list all options when editing due to the fact that the user is wanting to change the value to options outside what is filtered.
Please use the jsfiddle link below and follow the example below.
Notice the TYPE column has D and O as options.
Filter STATE to IA.
Click pencil to edit this one row.
Click TYPE select.  D is the only option.
Here I am wanting to have the ability to change to any(D,O) options.  I understand the "custom" filter is causing this.  Please let me know what I can do to make this possible
JSFiddle link below will help understand.
http://jsfiddle.net/jkhowell/yef3xwh4/23/

You have to redefine editTemplate of the TYPE field (since you want it to work differently.
To avoid rendering select yourself use the following trick:
editTemplate: function(value) {
    var originalItems = this.items;
    this.items = types;
    var $result = this.editControl = this._createSelect();
    this.items = originalItems;

    (value !== undefined) && $result.val(value);

    return $result;
}

Here is the working fiddle http://jsfiddle.net/tabalinas/yef3xwh4/25/

Hi,
how i can implement this technology http://jsfiddle.net/tabalinas/yef3xwh4/25/  using data bases


Barycentric interpolator leaves some raster cells uninterpolated

Here is the output of the barycentric interpolator on the aeromagnetic survey data, with interpolated pixels desaturated and NaN value cells drawn in black. There are 16 pixels left uninterpolated, which appear to come in pairs. I instead expected every pixel to be filled via interpolation (or extrapolation).

The exact input data to the interpolator is included under the details below.

Input Data
const w = 580;

const h = 350;

const I = Int32Array.from({ length: 4015}, (_, i) => i);

const X = Int32Array.from([22,22,23,23,24,24,26,24,24,24,23,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,26,25,25,26,26,26,26,27,27,27,27,27,27,27,26,26,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,27,27,27,27,27,27,27,27,66,66,66,66,66,67,67,67,68,68,68,67,67,67,67,67,67,66,66,66,66,66,66,67,66,67,67,68,68,68,68,68,69,69,68,68,68,68,68,68,68,69,70,70,69,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,69,69,69,69,69,70,71,106,106,106,107,107,107,107,107,107,107,106,107,106,106,107,107,107,107,108,108,108,108,108,108,107,108,108,109,108,109,109,109,109,109,109,109,109,109,109,109,110,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,112,112,112,112,112,112,112,112,112,113,112,112,111,147,148,148,148,148,148,149,149,149,149,150,150,149,149,148,148,148,149,149,150,150,150,150,150,150,150,150,150,150,150,150,150,150,151,151,151,151,152,152,152,152,152,152,152,152,151,151,151,151,151,151,152,153,153,154,154,155,155,155,154,154,189,189,189,190,190,190,190,190,190,190,190,190,190,190,191,190,191,191,191,191,191,191,191,191,191,191,191,191,190,190,190,190,189,189,189,190,191,191,191,191,191,191,192,192,192,192,193,193,193,194,194,194,194,194,194,194,194,195,195,195,195,196,196,197,197,197,197,197,197,197,197,197,197,197,232,233,232,232,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,233,234,234,234,234,234,234,234,233,234,234,234,234,234,233,233,233,233,234,234,235,235,235,235,234,234,235,235,235,235,235,235,235,235,234,234,235,235,236,237,237,237,237,237,237,237,237,237,236,237,237,237,237,237,238,238,238,237,238,238,237,237,273,274,273,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,273,273,272,271,271,272,273,273,275,276,276,276,277,276,276,277,277,278,278,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,280,280,280,282,280,280,280,280,281,280,315,315,315,315,315,315,315,315,315,315,315,316,316,316,316,316,316,316,317,317,317,317,317,317,317,317,317,317,317,317,317,318,319,318,318,318,318,319,319,319,319,319,319,319,319,320,320,320,320,320,320,320,320,320,320,320,321,320,321,321,321,322,322,322,322,323,323,323,323,323,354,354,355,355,355,356,356,356,357,357,357,357,357,357,357,358,357,358,358,358,358,359,359,358,358,358,357,358,358,359,359,359,360,360,360,360,360,360,360,360,361,361,361,362,362,362,362,363,362,363,363,363,363,363,363,363,363,363,363,363,11,17,39,52,61,78,86,95,101,105,122,165,181,183,197,200,213,225,237,251,261,264,276,280,285,293,308,318,323,328,342,347,353,360,364,367,377,383,387,391,396,406,414,425,440,448,450,454,465,470,477,481,489,492,509,512,532,535,550,552,555,565,572,577,579,0,11,15,29,34,46,54,61,82,85,88,103,114,133,141,154,163,179,201,210,228,233,238,244,258,263,273,280,286,302,305,310,314,323,326,330,342,347,349,351,364,372,390,397,405,414,415,437,449,452,456,463,472,475,481,490,499,517,522,533,558,567,574,578,2,21,27,33,41,52,63,75,83,87,105,115,118,122,132,136,150,159,163,165,176,179,191,200,210,215,216,219,221,228,232,256,281,284,288,294,308,317,322,323,327,339,342,348,359,364,373,378,381,392,403,406,411,415,421,430,433,440,448,453,457,462,480,483,490,500,519,521,532,544,563,573,577,2,7,38,41,52,62,66,69,75,83,91,93,95,101,104,110,115,130,132,135,137,141,155,159,162,164,166,169,175,186,193,199,206,219,226,231,235,242,246,254,260,283,287,290,301,308,314,320,330,337,343,351,364,374,384,387,399,404,410,421,433,444,447,459,466,480,489,490,498,500,502,513,517,521,524,528,532,539,557,560,567,573,577,0,4,21,30,35,54,63,73,80,81,88,99,107,112,116,119,126,127,135,138,143,145,155,160,163,165,170,172,177,184,207,220,224,233,243,246,264,279,281,287,300,313,320,334,345,350,357,361,364,370,380,397,402,406,411,427,444,447,450,458,478,489,491,499,504,522,532,541,560,572,0,27,31,50,59,64,78,86,88,93,95,98,107,108,111,112,124,126,143,145,149,150,152,154,156,161,164,168,170,171,184,190,194,206,211,232,243,248,263,267,274,282,297,303,309,321,327,353,356,364,379,404,414,429,432,447,449,454,466,477,489,494,505,517,532,535,546,564,572,4,6,24,31,33,36,52,56,72,86,98,100,111,112,118,122,124,127,136,141,148,150,152,154,160,166,173,178,197,208,215,231,237,249,251,269,272,280,299,308,310,316,321,331,341,346,352,363,369,378,384,386,405,407,413,423,426,430,440,447,448,461,464,473,481,489,492,502,524,532,545,559,572,0,13,21,27,31,42,50,71,80,92,101,121,124,134,139,148,157,167,172,174,177,196,206,210,216,222,233,236,251,266,287,293,297,300,307,313,321,324,328,339,346,348,351,358,365,367,373,381,384,387,395,402,405,420,429,446,452,461,471,473,478,481,489,494,508,522,531,544,571,577,1,12,19,26,33,42,52,58,79,85,97,102,110,112,117,123,129,137,142,149,153,159,162,172,176,179,182,187,194,208,224,235,253,260,281,293,298,306,312,328,340,349,360,363,367,371,378,393,401,405,417,424,429,436,446,448,466,468,478,484,489,497,503,506,515,521,531,535,553,556,562,570,571,3,13,20,25,32,35,38,42,46,52,80,99,102,111,115,121,128,132,141,147,154,160,172,177,179,200,204,216,221,229,248,252,271,276,279,283,289,294,298,302,305,326,343,347,358,367,370,372,382,390,395,400,405,412,426,431,433,445,448,458,469,473,483,489,490,495,504,509,521,526,531,535,547,570,10,18,25,29,53,59,73,93,96,106,114,127,130,133,147,164,169,182,188,201,208,217,227,233,245,246,248,255,267,273,276,277,278,286,289,293,299,304,314,325,333,341,345,363,365,373,386,405,407,414,425,426,435,445,447,460,467,473,478,482,486,489,495,506,513,523,531,547,568,570,0,11,25,30,51,53,69,70,83,90,103,105,115,121,135,143,161,163,172,183,185,187,190,194,201,203,216,223,228,233,243,263,265,281,286,297,302,314,320,339,342,351,374,380,382,387,391,399,403,405,419,426,438,446,452,458,465,473,476,488,497,503,511,520,531,532,534,549,570,572,4,5,22,24,42,51,55,56,59,72,74,80,84,105,115,117,129,134,135,137,145,151,159,171,178,182,195,203,217,221,227,234,240,255,258,277,278,290,298,309,316,319,332,336,340,343,348,350,358,363,369,372,379,389,395,397,402,405,413,417,423,429,430,438,445,447,466,472,480,485,488,496,514,531,534,554,567,570,4,13,25,34,49,54,68,73,75,100,101,114,120,141,146,157,161,174,183,184,194,201,217,226,236,250,273,278,292,294,297,301,315,319,321,325,345,369,384,392,399,405,415,427,438,441,445,463,470,486,488,509,515,530,532,547,555,570,8,32,51,72,73,92,99,113,133,144,151,152,159,173,176,181,185,196,206,219,240,243,260,278,280,295,301,316,319,327,332,336,341,353,362,373,387,394,405,410,427,445,450,461,469,482,488,493,514,529,539,545,570,571,8,11,30,49,56,68,74,86,92,105,111,117,131,132,140,149,162,168,182,194,201,204,217,251,272,294,301,316,319,337,365,387,404,409,416,422,427,432,434,439,445,446,450,460,469,486,491,513,518,529,534,537,570,10,20,26,42,44,48,53,64,69,87,92,109,131,152,154,163,177,194,199,213,218,256,277,281,299,303,317,319,341,362,364,372,386,404,406,440,445,452,464,487,508,516,521,525,529,544,570,573,14,34,49,56,76,92,97,120,139,146,174,195,206,216,234,238,259,272,279,280,301,307,319,329,336,348,352,373,379,394,404,415,423,437,442,445,457,465,478,486,487,487,494,507,521,524,529,539,566,570,18,30,43,50,61,69,88,99,128,149,171,193,207,213,220,243,249,265,283,319,326,340,350,377,383,391,405,426,432,436,440,443,447,450,458,463,484,487,506,526,528,555,570,576,6,17,25,46,72,74,93,114,136,152,158,165,175,179,193,200,222,245,250,260,267,272,291,306,319,328,343,348,354,381,398,405,411,419,428,431,435,441,445,450,470,484,498,520,528,539,563,2,16,19,24,36,41,69,74,80,85,90,102,127,133,163,176,200,223,247,263,278,287,295,312,319,323,342,360,374,378,396,405,438,445,461,487,500,528,529,537,557,571,9,16,23,42,46,77,83,89,98,111,128,157,166,175,210,228,235,247,264,278,294,319,342,374,409,428,444,459,487,495,506,528,549,568,571,7,13,19,27,40,42,77,93,95,121,132,154,161,180,204,228,235,253,258,291,303,328,353,360,379,385,390,394,396,402,404,436,444,451,454,460,463,465,468,477,484,486,509,548,574,4,19,21,42,45,67,89,93,132,135,156,163,179,204,226,252,260,276,286,300,325,341,366,369,374,378,389,404,415,435,444,457,467,478,486,501,520,528,539,553,570,4,11,16,34,39,56,68,78,92,100,110,123,135,146,151,162,169,191,215,237,259,282,292,305,328,332,343,351,367,375,377,389,403,407,412,434,444,454,461,463,476,486,488,504,528,541,565,569,5,9,15,39,59,68,78,88,97,117,137,157,164,177,191,217,231,251,272,276,301,312,332,338,352,365,373,387,402,407,426,444,446,467,485,486,505,509,525,528,531,538,565,568,7,12,16,18,42,65,68,87,109,134,153,163,175,209,231,255,274,279,297,301,323,334,345,360,368,374,390,411,424,432,444,455,461,478,483,486,499,510,522,524,528,544,558,568,8,11,12,18,34,38,52,55,68,71,91,110,111,124,145,166,197,217,235,239,259,277,286,296,312,316,318,322,334,352,360,373,392,402,411,424,433,441,443,460,465,478,486,497,515,527,533,545,551,567,569,17,18,40,43,51,63,85,90,123,133,150,159,163,182,206,229,235,253,269,276,285,293,341,349,359,366,375,390,402,414,425,435,443,449,461,469,480,485,486,493,504,508,519,523,530,534,554,567,573,5,19,47,68,91,111,121,132,151,165,171,189,208,220,240,260,280,300,313,321,341,376,381,400,402,420,424,433,439,442,445,453,472,473,485,489,494,498,508,515,525,527,533,535,549,560,567,569,9,29,38,62,86,92,110,120,134,157,164,181,205,220,244,250,268,275,292,302,316,339,364,372,379,388,401,410,435,442,458,462,466,472,479,483,484,492,503,507,509,516,527,532,540,547,556,568,5,18,25,29,38,59,68,79,96,119,137,156,169,176,189,196,199,208,237,249,269,288,298,307,326,361,377,401,402,442,447,454,463,477,485,487,494,502,511,516,522,523,527,535,542,562,568,571,17,29,31,41,54,76,94,97,108,120,143,150,166,189,190,216,237,244,260,273,276,293,300,314,317,338,359,381,401,403,425,437,442,448,472,478,484,494,498,504,516,518,525,530,533,539,542,554,564,568,574,10,16,22,29,37,46,60,81,103,108,119,125,146,165,187,206,227,242,248,268,272,280,290,291,310,331,349,353,366,375,380,395,406,416,417,427,436,442,448,456,465,475,484,493,496,508,513,518,526,540,554,567,10,15,17,24,29,39,62,80,85,98,108,110,119,126,157,169,182,189,198,221,233,244,246,265,268,271,290,314,330,353,368,375,383,399,411,423,442,447,470,493,505,511,515,525,531,542,554,567,14,20,24,35,56,57,67,79,100,120,123,142,163,172,184,190,206,219,233,241,254,261,274,295,315,336,357,371,379,393,400,410,415,420,427,437,442,457,461,478,484,500,513,521,525,535,557,567,6,8,10,22,24,36,44,58,66,67,74,89,108,111,125,134,149,155,179,202,225,233,241,253,254,271,284,292,300,315,322,338,344,350,352,369,376,392,401,405,417,422,428,439,442,444,459,464,471,473,483,485,488,494,501,512,518,525,534,545,554,558,396,396,396,396,397,397,397,397,398,398,398,398,398,398,398,398,398,398,398,399,399,399,399,399,400,400,400,400,401,401,401,400,400,401,401,402,402,403,404,404,406,403,404,405,405,404,404,405,405,405,406,406,406,406,408,409,410,440,439,439,438,437,437,437,437,438,438,439,439,439,439,439,439,440,439,440,440,440,440,441,441,442,442,442,444,444,445,445,445,445,445,446,446,446,445,445,446,447,447,447,447,449,449,448,448,447,447,446,478,478,478,478,478,478,478,479,479,479,480,480,481,481,481,482,482,482,482,482,482,482,481,481,482,481,482,483,483,483,483,483,483,484,485,486,485,485,485,485,486,486,486,487,487,487,487,487,488,489,489,489,489,489,489,489,489,489,489,490,491,519,519,519,520,520,521,521,521,521,522,522,522,522,522,522,522,523,522,523,524,524,525,526,525,525,524,524,526,527,527,527,527,528,528,528,529,529,531,531,531,531,532,532,532,532,534,535,562,562,562,563,563,563,562,563,563,563,563,563,563,563,563,563,564,564,564,564,564,564,564,565,565,566,566,566,566,566,566,566,566,566,567,567,567,567,567,566,566,567,567,569,570,570,571,570,569,569,569,569,569,570,570,571,571,572,572,573,573,573,572,567,13,24,35,58,79,101,125,129,144,172,186,206,221,227,231,233,241,248,272,286,303,308,316,319,329,344,350,359,363,371,382,391,405,411,418,425,432,435,442,446,452,461,468,477,483,492,505,511,514,516,525,531,552,572,3,19,25,29,36,42,74,89,100,104,108,112,137,160,168,183,191,207,229,241,254,279,303,318,328,352,366,372,378,388,403,408,414,416,420,425,429,450,454,468,471,478,483,486,493,502,525,534,547,549,572,5,18,20,40,42,59,65,79,86,128,150,162,172,216,221,234,238,241,259,273,293,319,338,378,399,417,420,426,436,440,442,443,454,461,462,464,476,481,489,492,503,531,537,546,6,16,19,26,37,60,67,83,97,108,121,145,168,189,204,216,225,227,236,250,266,272,274,294,316,318,321,336,344,358,365,369,375,389,400,404,414,418,425,432,437,450,458,464,468,473,480,485,493,503,524,529,532,545,566,568,22,45,67,76,87,110,139,161,172,183,191,205,227,246,262,270,275,282,296,299,303,305,318,323,327,336,347,358,366,369,376,390,394,400,401,413,436,441,458,464,469,480,503,525,548,565,571,5,19,25,36,61,84,109,133,157,174,180,191,204,227,233,239,250,256,273,296,318,334,341,344,352,358,375,386,397,416,439,442,447,452,462,476,486,490,496,506,521,543,566,2,12,15,22,36,44,52,62,81,88,117,138,160,171,183,191,205,216,227,247,255,268,291,300,312,326,335,355,363,370,375,380,387,394,409,426,432,442,454,460,475,484,490,497,518,525,540,550,560,565,9,22,24,36,45,68,83,106,131,151,162,173,196,200,221,246,257,261,273,277,292,300,304,317,324,328,339,346,353,361,365,374,393,397,407,413,420,429,435,439,453,458,479,481,504,515,526,549,565,571,12,22,35,59,82,103,107,111,125,147,161,170,190,199,200,212,220,242,262,273,285,291,301,307,325,330,347,352,363,368,378,382,388,403,414,418,421,429,445,462,492,496,514,523,538,556,560,12,23,30,47,53,70,77,106,109,139,157,173,199,222,247,258,273,292,305,315,330,338,362,364,381,388,392,394,398,419,424,430,444,467,482,490,495,539,571,3,12,19,34,42,64,68,82,86,106,108,131,154,160,177,191,199,222,245,263,267,273,283,305,315,319,328,349,371,393,422,431,443,449,472,494,519,524,537,560,564,3,11,15,37,39,54,60,63,70,72,86,94,107,118,141,153,165,191,197,226,248,263,270,273,285,293,314,315,321,328,351,364,372,378,381,400,414,438,442,463,479,482,490,506,527,548,564,569,3,11,15,38,53,57,60,81,91,104,106,118,141,150,157,166,189,214,238,261,274,277,301,328,353,367,377,402,404,425,438,457,461,479,481,503,524,525,528,542,548,552,560,564,571,12,39,46,69,74,91,106,114,136,147,150,160,184,190,215,238,262,274,285,309,315,325,334,349,379,403,408,424,448,468,474,475,483,489,494,511,519,526,533,539,545,556,564,12,20,25,38,44,47,74,92,98,106,115,117,123,132,146,150,162,172,198,221,246,272,297,322,346,359,372,396,408,420,435,444,453,468,476,482,486,492,507,516,522,528,537,541,542,551,564,17,40,64,71,74,83,88,93,110,132,155,161,176,200,221,244,267,290,305,316,328,350,372,395,408,418,425,439,440,448,464,480,485,509,521,524,532,533,540,548,564,570,1,7,13,23,42,46,67,69,86,92,115,123,139,165,199,257,283,307,312,320,324,348,372,408,416,421,428,438,453,462,486,510,534,560,1,2,18,49,57,72,80,103,126,149,170,186,210,234,256,276,298,321,343,356,367,389,406,408,421,430,437,448,452,475,479,496,498,519,522,529,544,567,23,50,75,102,105,109,113,119,122,127,137,143,169,179,203,230,261,273,278,304,314,329,344,354,356,378,403,412,428,448,452,470,477,501,510,527,531,552,569,12,20,28,42,47,64,66,74,88,98,102,132,135,148,161,168,180,184,198,204,228,231,243,266,273,289,312,315,328,344,349,374,397,403,411,418,428,437,441,466,468,479,489,513,525,536,550,564,11,38,53,58,80,106,110,131,158,182,184,196,210,234,262,279,289,306,332,350,356,380,383,409,425,434,438,458,471,479,483,508,525,533,557,16,31,56,61,70,93,107,131,159,178,184,201,211,257,273,279,282,302,315,334,344,358,376,390,405,418,428,440,443,453,466,475,479,489,506,520,525,537,543,563,568,14,17,39,47,61,74,109,118,137,148,156,177,181,189,199,216,232,243,270,286,305,341,354,367,376,396,401,410,422,431,461,475,492,518,545,570]);

const Y = Int32Array.from([7,10,13,18,24,29,33,39,44,50,56,57,61,66,73,76,78,83,89,93,99,105,115,120,122,127,131,136,138,144,149,162,164,172,181,182,184,187,193,200,204,209,214,216,221,227,233,238,248,251,254,255,259,266,272,277,278,281,288,293,298,304,307,309,316,320,326,332,338,342,4,9,12,17,20,23,26,33,38,45,49,56,62,66,73,78,83,89,93,99,106,109,113,115,121,124,127,132,138,143,150,155,161,165,170,176,182,188,196,206,210,215,221,223,234,238,242,245,249,255,260,265,275,280,282,288,292,298,301,304,309,319,322,327,332,343,348,6,11,15,18,23,29,33,35,39,44,52,56,62,66,71,72,78,81,88,90,94,99,105,112,116,121,127,132,139,144,147,150,155,161,165,166,171,176,179,183,189,193,199,201,204,205,211,218,220,227,232,237,244,249,253,256,260,265,271,275,283,286,289,293,300,303,306,311,317,319,324,325,332,337,5,11,17,23,27,33,39,43,50,55,62,66,73,77,82,91,93,99,104,111,116,119,121,127,132,138,144,150,156,161,165,171,174,182,188,193,199,204,210,215,219,225,231,237,243,249,257,259,265,270,276,281,288,293,295,304,314,320,324,331,336,6,11,16,22,27,31,33,38,43,44,47,49,55,61,66,71,77,79,83,87,90,99,104,107,115,117,120,126,132,135,138,143,150,153,160,165,172,176,183,186,187,190,192,199,203,208,210,214,219,225,227,231,237,244,247,254,263,269,277,281,287,292,298,301,303,305,308,313,316,319,325,333,340,344,6,10,10,15,19,22,27,34,37,38,43,48,54,56,59,64,71,75,81,87,94,97,99,104,109,112,114,120,127,133,138,142,147,149,153,158,159,165,175,177,181,186,192,196,197,203,208,213,219,221,225,231,234,240,242,244,248,253,259,262,268,269,275,279,280,286,292,296,298,303,306,308,310,313,318,319,324,326,331,336,341,6,10,15,21,26,32,43,46,58,64,70,75,80,85,89,92,98,103,106,108,111,116,120,126,130,135,137,142,148,151,162,164,170,171,175,181,189,192,196,200,202,206,208,214,218,224,230,234,242,246,252,254,258,263,267,270,272,275,277,286,291,302,305,307,312,318,321,326,331,340,5,11,16,21,26,31,37,43,48,51,58,64,70,74,78,81,86,92,96,99,103,107,110,114,119,125,126,129,130,136,145,149,152,158,163,169,174,180,183,185,191,196,202,204,207,213,219,222,223,230,236,240,246,251,258,262,268,274,282,286,294,301,307,308,312,317,319,322,329,336,5,9,14,17,26,35,42,48,53,58,63,69,75,80,85,91,96,102,106,113,118,130,135,141,146,152,153,157,162,169,171,179,186,188,196,202,205,207,212,223,228,235,240,245,257,258,262,268,274,283,286,290,299,306,312,317,328,334,338,340,331,331,332,332,332,332,332,332,332,332,332,331,331,330,330,330,330,329,330,331,330,330,330,330,330,329,329,328,328,329,329,329,329,328,328,328,328,328,328,328,328,327,327,327,327,327,327,327,327,327,326,326,326,326,325,325,324,324,324,324,324,324,323,323,323,326,326,326,326,326,326,327,327,326,326,326,324,325,324,324,325,325,325,325,325,325,325,324,324,324,324,324,324,324,324,324,324,324,323,323,323,323,323,323,323,323,323,322,322,322,322,322,321,321,320,320,320,320,320,320,319,319,319,319,319,318,318,318,318,320,320,321,321,321,321,319,319,319,319,319,319,319,320,320,320,320,320,320,320,320,320,320,319,319,319,319,319,319,319,319,319,318,318,318,318,317,317,317,318,319,319,319,318,317,317,317,316,316,316,316,316,316,316,316,316,316,316,315,315,315,315,314,314,314,314,314,314,314,314,313,313,312,316,316,316,315,315,314,314,314,313,313,313,313,314,314,314,314,314,315,315,315,315,315,315,315,315,314,314,314,314,313,313,313,313,313,313,313,313,313,313,313,313,312,312,312,312,312,312,312,312,312,312,312,312,311,311,311,311,311,310,311,310,310,310,309,309,309,309,309,309,309,309,309,309,309,309,308,308,308,307,307,306,306,306,310,310,309,309,309,308,309,309,309,309,310,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,308,308,308,308,308,308,307,307,307,307,307,307,307,307,306,307,306,306,306,305,305,305,305,305,304,304,304,304,304,304,303,303,303,303,303,303,303,303,302,302,304,305,304,304,304,303,304,304,304,304,304,304,304,304,304,304,303,303,303,303,302,302,302,302,302,302,302,302,303,303,303,303,303,303,303,303,303,303,302,302,302,302,301,301,301,301,301,300,300,300,300,300,300,300,300,299,299,298,298,298,298,299,297,298,297,297,296,296,296,298,298,298,298,299,298,298,298,298,298,298,298,298,298,298,297,297,297,297,298,298,299,299,299,299,299,299,299,297,297,296,296,296,296,296,296,295,295,295,295,296,296,296,296,295,295,295,294,294,294,294,294,294,294,294,292,292,292,293,293,293,293,293,293,292,293,293,293,292,291,291,291,291,293,293,293,294,294,293,293,292,292,293,293,293,293,293,293,293,293,293,293,293,293,293,292,292,292,292,292,292,292,291,291,291,291,291,290,290,290,290,290,290,290,290,290,290,290,290,289,289,289,289,289,289,289,289,289,288,288,288,287,287,287,287,287,287,286,286,286,285,285,285,289,289,289,289,288,288,288,287,289,288,288,287,288,288,288,289,288,288,288,288,287,287,287,287,287,287,287,287,287,287,287,286,285,285,286,287,287,288,287,285,285,284,284,284,284,283,284,284,283,283,283,282,282,282,282,283,283,283,282,282,282,282,282,282,281,281,281,281,282,282,281,281,280,282,281,281,281,281,281,281,281,281,281,282,283,283,282,282,281,281,281,281,281,281,281,281,281,281,281,281,280,280,280,280,280,278,278,279,279,279,279,279,279,279,279,278,278,278,278,278,278,278,278,278,278,278,277,277,276,276,276,276,276,276,276,275,275,275,275,275,275,275,275,275,275,274,274,277,276,276,276,276,276,275,275,275,275,275,275,275,276,276,277,277,277,277,276,276,276,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,274,274,274,274,274,274,274,273,273,273,273,273,273,273,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,270,269,269,271,271,272,272,271,271,271,271,271,271,271,271,271,271,271,271,270,270,270,269,269,269,269,270,270,270,269,269,269,269,269,269,269,270,269,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,267,266,266,266,266,266,265,265,265,264,265,265,264,265,265,265,264,264,264,265,265,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,264,264,264,264,264,265,264,264,264,264,264,263,263,263,263,263,264,264,263,263,262,262,262,262,262,263,262,262,262,262,262,262,261,261,261,261,262,262,262,262,262,261,261,261,261,261,260,260,260,260,260,260,260,260,260,259,258,258,258,257,257,260,259,259,260,260,260,260,260,260,259,260,260,260,259,259,259,259,259,259,259,260,260,259,259,259,259,258,258,259,259,259,259,258,258,258,258,258,257,256,256,256,256,256,256,256,256,256,255,255,254,254,252,253,253,253,253,253,253,254,255,255,255,255,255,254,253,253,253,253,253,254,254,254,254,254,254,253,253,253,253,252,252,252,252,252,251,251,251,251,251,251,251,251,251,250,250,250,250,250,250,249,249,249,248,248,248,249,248,247,247,246,246,249,249,248,249,249,249,249,250,250,249,250,250,250,250,249,249,248,248,247,248,247,248,248,247,246,246,246,246,246,246,245,246,245,245,245,244,244,244,244,244,244,244,244,243,243,243,243,243,242,242,242,242,241,243,243,243,245,245,244,244,244,244,244,244,244,243,242,242,242,242,243,243,242,242,241,241,241,241,241,241,240,239,240,240,240,239,238,239,239,239,239,238,237,237,236,236,236,236,236,236,235,237,238,239,239,238,238,238,237,238,238,237,237,237,236,236,236,236,236,236,236,237,236,236,235,235,235,235,234,234,234,234,234,234,233,233,233,233,233,233,232,233,232,232,231,231,231,231,231,229,229,232,232,232,233,233,233,233,233,231,231,230,231,232,232,231,231,231,230,230,230,230,229,229,229,229,228,228,227,227,227,227,227,227,227,227,227,227,227,225,225,225,225,225,225,227,227,227,227,226,226,228,227,227,226,225,225,224,224,225,225,225,225,224,224,224,224,224,224,224,223,223,223,223,223,222,222,222,222,222,222,222,222,222,222,222,222,221,220,220,220,219,221,221,221,221,221,221,221,221,221,221,220,221,219,219,219,219,219,220,219,218,218,218,218,219,219,219,219,218,217,217,217,217,217,216,214,215,216,214,215,214,214,214,216,216,216,216,216,215,215,215,215,215,215,215,215,214,214,214,214,213,214,214,214,213,212,212,212,212,211,211,210,210,210,210,210,208,208,210,210,210,210,210,210,210,211,211,211,210,210,210,210,209,208,209,209,209,208,207,207,206,206,206,206,206,206,206,206,206,205,205,205,205,205,205,205,205,205,205,205,204,202,201,204,204,204,204,204,205,204,204,204,204,204,204,203,203,204,202,202,202,202,201,202,202,202,201,201,201,200,201,202,200,200,200,200,200,200,199,199,198,198,197,196,201,200,200,199,199,199,199,200,199,199,198,198,198,198,198,199,199,199,197,197,196,196,196,196,196,196,196,196,196,196,195,195,195,195,195,194,194,193,193,193,193,193,193,194,193,192,192,192,193,193,193,194,194,194,194,194,193,193,193,193,193,191,192,192,192,192,192,192,192,191,190,190,190,190,190,190,189,189,190,189,189,188,188,188,188,188,187,187,187,187,186,186,188,187,187,187,187,187,187,188,189,188,188,188,188,186,186,186,185,185,185,185,185,185,185,185,186,185,184,184,183,182,182,182,182,182,182,182,181,182,181,181,181,181,181,181,183,183,183,183,183,183,182,182,183,183,181,181,181,182,181,182,183,181,182,182,182,181,181,181,180,180,180,180,180,179,179,179,179,180,179,178,178,178,178,177,177,177,177,177,176,176,176,176,175,175,175,176,176,177,176,176,176,176,176,176,176,176,176,176,176,176,175,175,175,175,175,175,175,173,173,173,173,173,173,173,172,172,172,172,172,172,172,171,171,171,171,171,170,170,170,170,170,169,169,169,172,172,171,172,172,171,171,171,171,171,171,171,172,172,170,170,170,169,169,169,169,169,169,168,168,168,168,168,168,168,168,167,166,166,166,166,166,166,165,165,165,165,164,164,164,164,164,164,166,167,166,165,165,165,165,165,164,165,165,165,165,165,165,165,165,164,163,163,163,162,162,162,162,162,161,161,161,161,161,161,160,160,160,159,159,159,159,159,159,158,158,158,158,158,159,159,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,159,159,159,159,159,158,157,157,157,157,157,156,156,156,156,156,155,155,155,156,155,155,155,155,155,155,154,153,153,153,155,155,155,155,156,155,154,154,153,153,154,154,154,154,154,155,153,152,152,153,153,153,153,151,151,152,152,152,151,151,151,150,150,150,149,149,149,149,149,149,149,149,149,149,149,148,148,147,147,147,147,150,150,150,150,150,150,151,149,150,150,150,150,150,150,150,150,149,149,149,148,148,148,147,147,146,147,147,146,146,147,147,146,146,146,146,146,146,146,145,145,144,144,144,145,144,144,144,143,143,143,142,141,143,144,144,144,144,144,143,143,143,143,144,144,144,144,143,143,143,143,144,143,143,143,143,142,142,142,142,141,141,141,141,140,141,141,140,140,140,139,138,138,138,138,137,137,137,137,136,136,138,138,137,137,137,137,138,138,139,138,138,138,138,138,137,137,138,138,138,138,138,138,136,136,136,136,135,135,135,134,134,134,134,134,133,133,133,133,133,133,132,132,133,133,133,133,132,131,132,132,132,131,131,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,131,131,131,131,131,130,131,131,131,130,130,130,130,130,130,129,129,129,128,128,128,128,127,127,127,127,128,128,128,127,127,127,127,127,127,126,126,126,126,126,126,126,4,8,14,20,23,25,27,30,36,42,46,51,58,62,68,71,74,80,84,90,96,97,101,105,108,110,113,118,124,127,129,139,143,150,159,161,177,201,205,210,225,234,244,249,266,272,274,282,288,299,303,308,312,328,332,338,349,3,7,14,19,24,25,30,37,40,46,55,57,61,67,74,75,79,82,85,87,90,94,100,102,110,117,138,185,203,209,211,221,238,248,250,254,259,263,266,281,290,294,297,307,320,323,329,332,337,341,348,2,4,8,12,19,24,30,34,36,40,46,50,55,56,62,67,70,72,78,84,86,89,100,101,105,112,116,120,123,131,138,145,148,163,177,179,193,195,199,200,210,212,215,240,242,248,249,254,271,281,292,297,306,312,314,319,325,328,331,335,341,1,2,9,12,17,23,25,29,34,35,39,42,47,50,56,60,66,72,77,82,88,94,98,104,110,111,115,149,160,170,177,181,192,211,215,225,228,256,262,270,279,301,317,318,323,330,335,0,4,11,12,17,21,27,33,38,42,44,49,54,60,64,65,70,76,80,81,88,93,94,98,103,108,109,114,120,123,128,131,138,141,147,148,153,154,159,168,169,181,183,196,199,208,212,218,229,230,235,241,245,260,263,290,291,301,306,312,317,323,335,338,126,127,127,127,127,127,128,128,128,126,126,126,126,126,126,126,126,126,126,126,125,125,125,125,125,125,124,124,124,124,124,124,123,123,123,123,124,124,124,124,124,123,123,122,122,122,122,122,122,122,122,122,120,120,121,121,121,121,122,122,121,121,122,122,122,122,120,121,121,121,121,120,121,121,120,120,119,119,119,118,118,118,118,118,118,118,118,118,118,117,117,117,116,116,116,116,115,116,116,115,115,115,115,115,114,116,116,116,116,116,116,115,115,115,115,117,116,116,115,116,115,115,115,116,116,115,114,112,112,113,112,112,112,112,112,112,112,112,112,112,112,111,111,111,111,111,111,111,111,110,110,110,110,110,109,109,109,110,111,111,111,111,107,108,109,110,110,110,109,109,109,109,108,107,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,105,105,105,105,105,105,104,104,104,104,104,103,103,105,106,105,105,106,104,104,104,104,103,103,104,104,104,103,102,103,103,103,104,104,102,102,102,102,102,101,101,102,102,101,101,101,101,101,101,101,101,100,100,100,100,99,98,98,99,99,98,99,99,99,99,100,98,99,99,98,98,98,98,99,99,98,98,98,98,97,96,96,96,96,96,96,96,96,96,96,94,94,95,94,94,94,94,94,94,94,94,93,93,94,94,94,95,94,94,94,94,94,95,94,93,93,93,93,93,93,93,93,91,92,92,92,92,92,92,91,91,91,91,90,90,90,90,90,90,90,90,90,89,89,89,89,89,88,88,88,88,88,88,89,88,88,88,88,89,89,88,89,90,89,88,87,87,88,87,86,86,85,84,85,86,86,86,86,86,86,86,85,85,85,84,84,84,84,84,84,84,84,84,84,84,84,84,83,82,82,81,81,81,83,83,83,83,83,84,84,84,85,82,82,82,82,82,82,81,81,81,80,80,80,80,81,81,81,81,80,80,80,80,80,80,80,80,80,80,80,79,79,78,78,78,77,76,77,76,76,77,78,78,78,78,78,78,78,78,77,77,77,77,76,75,75,75,75,74,74,74,74,75,74,74,73,73,73,73,74,74,74,74,73,73,72,72,71,69,73,73,73,73,73,73,73,73,73,72,72,73,72,72,71,71,72,71,70,70,70,70,70,71,70,70,69,69,69,69,68,68,67,67,67,67,66,66,66,65,66,67,66,66,67,67,66,66,66,66,66,66,65,66,67,66,66,66,65,65,65,63,64,64,64,65,65,64,64,64,63,63,63,63,63,63,62,63,62,62,62,62,62,61,60,60,61,60,60,61,61,61,62,62,63,63,60,60,60,61,61,60,61,61,60,60,60,59,59,59,59,58,58,58,58,58,58,58,57,56,56,56,57,57,56,55,55,55,55,55,55,55,54,54,55,55,55,56,56,55,55,55,55,55,55,55,55,54,54,54,53,53,53,53,53,53,53,53,52,52,52,52,52,51,51,51,50,50,50,50,50,49,49,49,49,49,49,50,51,50,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,48,48,48,48,48,47,47,47,46,46,46,46,45,46,46,45,45,45,45,45,44,44,44,43,43,43,43,43,44,44,45,45,44,44,44,44,44,44,44,44,44,43,43,44,43,43,43,43,43,42,42,42,42,41,41,40,41,40,40,40,40,39,39,39,39,39,39,39,38,38,39,40,40,40,39,39,38,38,38,38,39,39,39,39,38,38,37,37,37,37,37,37,36,36,35,35,36,36,36,36,36,35,34,33,34,34,33,33,33,33,33,33,33,33,33,33,33,34,33,32,31,31,31,31,31,30,30,29,29,29,29,30,30,30,30,29,29,29,29,28,28,27,29,27,27,29,29,29,29,29,29,28,27,27,27,27,27,27,27,26,26,26,26,26,26,26,26,25,25,25,25,25,24,24,24,23,23,22,22,22,21,24,24,24,23,23,23,23,23,23,23,23,22,22,22,22,22,22,22,22,22,22,22,21,22,21,21,20,20,20,20,20,19,20,19,19,19,19,19,19,18,18,18,18,17,17,17,16,17,18,18,17,17,16,18,18,17,16,16,16,16,17,15,16,15,15,16,15,15,14,14,14,14,14,14,14,13,13,13,12,12,11,11,11,13,13,12,12,12,11,11,11,11,12,11,11,10,10,10,10,10,10,10,10,9,9,9,9,8,7,7,7,7,7,8,8,8,7,7,6,6,6,5,4,4,7,7,7,6,6,6,6,6,5,5,5,5,5,5,6,6,5,5,5,5,5,4,4,3,3,3,4,4,3,3,2,2,2,1,1,0]);

const V = Float64Array.from([7,6,9,12,18,24,31,43,49,61,70,72,80,88,100,103,107,102,89,63,36,-3,-26,-21,-21,23,60,90,81,7,18,52,45,25,-29,-37,-48,-73,-99,-108,-114,-114,-112,-111,-105,-103,-109,-102,-49,-41,-29,-28,-44,-31,-31,-45,-53,-70,-69,-62,-45,-39,-37,-60,-60,-56,-62,-82,-107,-116,69,66,62,60,55,50,45,39,33,27,21,16,8,4,-2,-7,-8,-16,-20,-26,-29,-31,-36,-35,-36,-37,-39,-39,-41,-42,-44,-48,-52,-56,-59,-71,-78,-85,-87,-99,-101,-97,-89,-85,-56,-65,-46,-37,-16,-4,-6,-22,-41,-50,-51,-59,-60,-65,-63,-65,-72,-86,-91,-97,-102,-97,-91,13,9,7,4,2,-4,-5,-4,-2,2,4,2,-6,-22,-28,-28,-30,-41,-46,-46,-49,-50,-51,-53,-55,-58,-54,-56,-53,-56,-54,-54,-54,-56,-57,-59,-61,-63,-66,-68,-71,-73,-75,-74,-72,-73,-68,-62,-61,-57,-51,-46,-38,-31,-26,-19,-8,8,27,38,51,53,57,77,115,141,154,190,167,136,54,44,45,47,16,6,1,-3,-6,-12,-15,-16,-22,-37,-66,-72,-83,-87,-89,-96,-96,-95,-95,-95,-94,-93,-91,-91,-90,-92,-88,-86,-84,-79,-78,-75,-71,-66,-57,-55,-52,-51,-48,-44,-44,-33,-22,-4,13,35,23,23,26,39,65,69,54,73,85,111,115,141,162,182,204,57,52,51,48,40,33,31,23,16,15,12,7,-1,-9,-18,-27,-34,-38,-42,-49,-66,-78,-83,-83,-74,-74,-77,-78,-82,-82,-84,-83,-79,-73,-67,-60,-48,-41,-25,-19,-17,-11,-7,7,17,30,35,44,55,68,70,88,130,157,159,131,77,61,47,39,18,10,-3,-1,-19,-26,-34,-31,-15,0,25,33,-21,69,106,104,104,99,101,98,100,100,101,103,101,101,105,104,102,101,101,99,91,85,116,130,137,165,113,97,87,72,91,107,115,119,112,107,97,89,91,107,133,139,173,197,218,230,233,231,221,201,171,162,141,128,129,134,138,138,156,169,138,105,86,79,45,22,16,-3,4,7,17,26,28,28,23,33,48,59,116,135,139,145,141,161,159,156,154,152,152,155,156,152,149,142,136,129,119,108,97,93,90,87,76,71,90,121,186,194,152,139,142,64,62,124,136,141,143,160,179,180,175,180,186,186,179,172,143,119,108,118,133,117,113,112,111,111,109,107,96,87,70,74,72,83,39,-1,-44,-47,-81,-100,-141,-159,-146,141,136,131,128,126,125,133,121,118,116,102,87,71,56,44,34,24,12,-12,-16,-18,-19,-24,-2,69,125,134,153,160,202,204,145,164,181,135,70,74,102,106,104,99,90,75,64,49,27,29,32,37,37,34,15,12,11,-15,-23,-17,-16,-23,-30,-47,-87,-101,-104,-103,-107,-106,-105,-99,-96,107,94,79,76,55,51,67,85,106,129,132,96,58,33,28,31,-2,-9,-11,-35,-29,-5,5,2,-13,-10,-8,17,41,106,96,94,62,51,-1,-41,-65,-67,-89,-69,-63,-65,-65,-62,-53,-54,-52,-54,-63,-73,-67,-72,-91,-78,-51,-25,-40,-52,-61,-66,-112,-109,-56,-89,-100,-89,-71,-14,65,26,109,57,105,101,28,33,-6,95,139,65,5,14,-150,-157,-161,-149,-111,-101,-99,-94,-78,-66,1,-41,-34,-28,46,29,26,16,6,30,47,68,62,48,47,50,30,30,24,29,6,-1,-38,-41,-6,-2,51,53,63,116,169,261,258,-96,-106,-94,-57,-48,-67,-90,-92,-83,-76,-61,85,50,288,414,162,75,152,12,-30,68,93,120,157,75,58,-58,-132,-146,-120,-113,-109,-106,-106,-101,-97,-86,-49,-53,-62,-14,90,23,5,26,42,44,67,59,50,42,37,27,24,19,3,-20,-48,-42,-29,48,108,167,195,-97,-76,-56,-56,-63,-96,-84,-87,-71,-48,150,126,126,151,315,387,206,106,100,112,239,200,29,-14,-45,18,7,18,11,22,40,158,-95,-100,-111,-123,-111,-102,-107,-106,-103,-96,-96,-86,-53,-25,31,30,27,-4,15,18,26,37,45,63,64,59,55,50,44,41,22,19,2,-23,-60,-64,-48,-13,85,114,118,-87,-92,-71,-76,-97,-76,-71,-69,-79,-70,-22,-3,39,188,241,186,223,319,322,309,305,316,121,103,113,137,135,169,212,49,-10,-31,-44,8,9,24,28,42,50,116,153,-61,-64,-71,-117,-112,-108,-98,-108,-104,-101,-91,-51,-22,-17,-13,-7,11,17,25,59,47,34,24,21,15,-1,-3,-22,-27,-30,-56,-75,-93,-63,-73,-69,-57,89,66,49,56,68,-86,-89,-65,-55,-68,-91,-68,-72,-66,-62,-34,81,174,185,285,226,258,262,230,232,223,218,101,132,132,160,196,234,137,35,-47,-6,6,39,8,0,133,-18,-44,-59,-104,-103,-99,-101,-95,-94,-81,-81,-78,-67,-52,-26,-7,4,7,19,10,9,6,7,0,-9,-9,-16,-27,-67,-82,-69,-13,-6,-88,-36,-20,-84,-76,-71,-61,-27,-18,45,35,36,137,141,148,146,157,158,91,92,90,97,104,102,112,174,147,139,138,137,54,11,-1,-46,-43,43,-7,-20,111,124,88,3,-90,-81,-66,-87,-96,-94,-95,-90,-71,-21,-19,-6,-6,-12,-11,-11,-10,-23,-20,-18,-39,-72,-90,-89,-78,-49,-41,-94,-92,-42,-59,-69,-68,-94,-92,-60,-31,30,38,97,97,95,102,104,99,61,45,69,83,89,97,148,142,111,101,-3,-48,-41,20,7,-39,-37,117,116,63,-61,-41,-43,-44,-56,-79,-83,-86,-91,-84,-85,-65,-77,-80,-48,-44,-41,-25,-29,-25,-25,-19,-17,-32,-34,-32,-34,-39,-42,-54,-93,-96,-89,-76,-66,-112,-62,-52,-66,-74,-82,-100,-56,-37,11,35,66,62,38,33,62,82,126,135,120,128,10,-35,-30,-34,-31,7,4,-47,55,13,-29,-27,-28,-16,-28,-38,-45,-49,-78,-73,-73,-76,-84,-69,-68,-63,-59,-58,-52,-73,-65,-56,-14,-33,-37,-40,-36,-25,-28,-29,-32,-45,-56,-73,-83,-88,-91,-84,-86,-108,-58,-61,-69,-87,-72,-102,-97,-28,-17,35,47,53,57,68,62,39,32,34,63,54,36,42,89,94,103,85,67,21,-25,-26,-3,-32,-8,72,-5,-11,13,-18,-49,-75,-75,-81,-72,-68,-69,-62,-48,-37,-34,-25,-27,-32,-35,-54,-55,-27,-31,-39,-43,-53,-63,-65,-67,-64,-67,-72,-73,-89,-89,-86,-96,-95,-89,-56,-62,-70,-78,-86,-88,-98,-98,-97,-10,74,80,51,44,60,47,56,57,67,36,18,44,64,65,20,8,26,20,25,-11,-6,38,71,61,45,22,10,24,27,37,-33,-68,-68,-66,-63,-59,-59,-39,-42,-38,-40,-22,-27,-40,-30,-33,-44,-47,-40,-54,-56,-56,-62,-64,-66,-55,-63,-52,-56,-56,-59,-83,-103,-50,-27,-45,-52,-93,-86,-16,72,71,44,31,73,117,134,74,9,21,57,53,34,50,82,61,50,28,26,26,8,30,52,67,74,70,43,35,31,20,17,-8,-26,-37,-47,-67,-64,-61,-52,-27,-39,-36,-27,-41,-43,-38,-53,-54,-58,-66,-61,-57,-58,-56,-58,-69,-55,-56,-51,-55,-77,-100,-102,-80,-60,-31,-53,-97,-98,-32,-20,51,57,36,29,18,39,189,109,4,3,65,66,63,62,60,61,65,73,125,109,96,88,31,56,50,108,96,40,29,-7,-17,-41,-45,-63,-38,-34,-32,-19,-14,-24,-21,-22,-41,-32,-19,-33,-48,-44,-43,-45,-41,-58,-56,-65,-69,-68,-65,-65,-66,-83,-97,-97,-66,-65,-29,-31,-80,-96,-83,-80,-83,-1,19,42,40,8,8,6,100,170,150,126,51,26,5,73,64,61,78,84,130,125,115,113,107,72,71,115,109,93,57,6,-18,-23,-24,-31,-33,-33,-41,-43,-55,-52,-42,-40,-25,-4,1,13,28,12,-21,-27,-26,-19,-18,-23,-16,-14,-40,-49,-54,-57,-61,-67,-67,-74,-71,-78,-84,-84,-68,-44,-19,-43,-87,-85,-6,31,32,-18,-18,-2,25,8,35,10,20,84,73,74,108,111,156,151,138,127,107,111,93,92,76,69,5,-15,-21,-26,-35,-39,-19,-11,-4,-2,-24,-12,-7,-11,-2,-24,-33,-52,-55,-71,-67,-65,-63,-60,-61,-71,-74,-41,-88,14,21,-32,-36,-21,56,45,36,33,27,75,88,83,89,137,146,177,170,167,143,112,112,111,99,16,11,-18,-29,-41,-46,-51,-55,-40,-30,-19,-5,1,-11,-17,-19,-28,-32,-29,-30,-43,-60,-51,-47,-47,-67,-67,-75,-74,-55,-85,-85,-22,-11,-43,4,-40,-31,-13,42,43,40,41,19,33,83,156,159,156,175,177,117,113,110,29,12,53,-60,-36,-15,-8,-8,-12,-13,-22,-25,-27,-36,-35,-38,-33,-29,-1,-7,-41,-51,-51,-50,-47,-67,-87,-80,-76,-88,-89,-86,-89,-62,-37,-61,-63,-41,16,13,6,-4,39,152,174,164,160,165,118,113,112,109,37,24,-51,-65,-67,-67,-58,-41,-41,-32,-39,-43,-34,-21,-49,-59,-52,-55,-61,-62,-69,-69,-103,-100,-101,-98,-63,-71,-67,-27,3,7,-7,130,153,144,130,126,144,130,122,119,113,106,34,-19,-36,-45,-52,-73,-72,-69,-61,-52,-51,-53,-52,-52,-54,-53,-39,-38,-39,-41,-52,-71,-73,-75,-68,-85,-79,-82,-107,-108,-106,-107,-93,-76,-79,-73,-14,-16,-34,88,142,153,150,122,121,118,119,37,-3,-51,-56,-84,-81,-75,-80,-71,-71,-73,-70,-71,-72,-73,-71,-69,-66,-67,-85,-89,-89,-88,-88,-86,-95,-108,-99,-113,-76,-73,-84,-48,-16,-33,-45,-51,-35,-19,68,105,163,121,119,104,109,106,116,91,36,-25,-62,-69,-68,-89,-87,-91,-89,-90,-90,-90,-91,-94,-96,-98,-92,-93,-98,-106,-108,-108,-100,-94,-106,-104,-98,-122,-125,-91,-84,-81,-86,-89,-78,-25,-23,-53,-34,102,188,138,114,119,128,122,64,29,4,-62,-88,-85,-86,-96,-95,-104,-110,-121,-122,-114,-123,-120,-117,-107,-103,-106,-107,-99,-125,-129,-93,-93,-96,-90,-66,-25,-51,-55,-42,161,208,201,175,148,146,144,27,-49,-92,-102,-109,-116,-128,-131,-137,-137,-128,-121,-110,-110,-103,-99,-97,-114,-132,-133,-95,-94,-93,-47,-27,-51,-57,-31,112,221,221,200,196,169,116,22,-54,-67,-76,-79,-83,-87,-90,-95,-101,-117,-122,-121,-118,-116,-118,-119,-120,-131,-137,-139,-143,-126,-113,-97,-98,-99,-130,-128,-104,-99,-101,-28,-24,-55,-61,-34,92,219,222,215,189,176,141,56,7,-53,-59,-61,-67,-79,-100,-114,-129,-125,-135,-135,-133,-136,-140,-136,-134,-131,-121,-114,-90,-89,-79,-124,-118,-110,-95,-97,-95,-90,-75,-47,-33,-44,-52,-61,-60,2,134,236,221,167,156,133,65,53,35,17,-12,-20,-26,-63,-97,-102,-105,-116,-118,-111,-120,-122,-101,-122,-131,-134,-123,-124,-113,-110,-59,-54,-52,-117,-100,-85,-97,-95,-89,-58,-40,-65,-68,-53,-8,139,203,234,189,175,138,115,62,54,41,49,28,-17,-89,-97,-108,-106,-106,-103,-64,-71,-116,-118,-106,-105,-112,-118,-104,-102,-7,-7,9,-3,-96,-82,-84,-93,-74,-44,-61,-72,-58,56,179,229,185,171,140,132,93,70,59,63,75,81,1,-81,-111,-92,-89,-72,-51,-59,-47,-47,-83,-100,-90,-90,-95,-100,-97,-95,17,21,26,48,-77,-79,-71,-70,-78,-81,-87,-66,-64,-53,-58,-73,-5,82,173,193,215,176,143,135,105,105,102,99,90,95,94,121,19,-46,-67,-93,-84,-78,-76,-44,-15,-53,-48,-61,-77,-78,-88,-87,-89,-86,-85,74,75,-61,-64,-63,-68,-79,-82,-53,-58,-71,-80,-81,-62,5,109,130,169,173,160,138,121,113,119,106,120,132,46,-40,-71,-83,-66,-67,-57,-41,-2,-50,-50,-52,-49,-62,-54,-65,-69,-77,-79,-78,-74,-69,-35,70,-53,-63,-74,-59,-52,-55,-74,-80,-80,-52,5,51,134,147,135,74,59,81,102,126,117,-22,-30,-74,-75,-73,-69,-70,-69,-54,-37,-38,-47,-45,-46,-49,-32,-42,-59,-59,-70,-70,-67,-58,-62,-61,-27,48,-12,-51,-66,-70,-58,-51,-59,-84,-85,-70,-11,51,148,157,145,135,98,126,126,98,43,123,92,83,-10,-47,-71,-67,-48,-44,-43,-38,-39,-36,-34,-30,-17,-17,-18,4,-6,-29,-41,-46,-41,-45,-43,-1,42,153,-7,-47,-52,-58,-66,-52,-61,-86,-91,-86,-67,-45,-42,-9,105,144,102,89,72,107,190,18,47,-10,-15,-69,-64,-61,-45,-45,-34,-17,-20,-16,-12,5,-8,-19,-23,-30,-41,-33,-33,-32,-24,152,107,-18,-42,-52,-61,-60,-55,-52,-75,-82,-95,-71,-70,13,116,132,83,62,63,54,73,151,163,90,-11,29,-22,-31,-67,-70,-66,-59,-57,0,-13,25,17,19,0,1,13,-7,-11,-10,-19,-27,-28,-22,-27,-45,-34,-2,67,-1,-31,-44,-50,-55,-54,-50,-51,-83,-95,-81,-37,75,125,116,68,64,58,54,53,125,93,0,-6,-21,-9,-2,-22,-22,-37,-38,-61,-60,-57,-52,-54,-56,3,1,104,120,19,26,12,6,-5,-10,-12,-10,-13,-13,7,22,-5,-40,-47,-46,-54,-56,-56,-55,-60,-95,-95,-92,-84,-69,29,120,116,115,110,106,102,91,266,118,19,-20,-14,-6,-31,-18,-34,-38,-49,-22,44,26,56,41,9,8,14,0,-6,24,61,81,28,-43,-42,-41,-42,-52,-57,-63,-84,-93,-77,-89,-84,-60,15,114,106,124,126,150,141,213,60,5,-3,-8,-34,-31,-22,-26,-31,-22,-39,-42,-10,27,32,45,74,35,18,16,11,0,-4,-13,-1,3,42,60,8,-22,-43,-41,-39,-38,-44,-56,-56,-64,-76,-90,-92,-89,-60,70,103,95,119,120,194,233,193,143,166,139,46,24,23,14,-19,-5,-25,-26,-26,-14,-18,-20,-38,-45,-48,36,24,43,51,111,106,98,81,128,31,22,15,14,9,9,2,171,166,158,155,147,143,138,128,105,81,65,54,61,67,82,86,84,72,110,46,52,55,43,34,33,25,10,-20,-26,-27,-26,-42,-26,-22,-16,-10,-49,-100,-102,-103,-88,-61,-16,-5,-27,-39,-36,-34,-57,-21,-14,2,12,30,41,35,42,140,146,154,158,161,162,162,145,121,69,-6,-9,-12,13,9,10,23,32,35,40,48,43,15,16,-6,-9,-36,-99,-124,-111,-114,-98,-40,-29,-17,-8,-16,-28,-33,-53,-35,-19,-12,24,59,51,47,48,51,55,70,202,199,192,182,166,151,125,108,103,87,71,65,58,63,55,53,54,55,59,69,73,74,71,72,67,56,57,51,61,45,-3,-9,-12,-47,-48,-50,-126,-134,-136,-134,-134,-133,-122,-10,0,-31,-44,-55,-58,-54,-39,-24,-8,3,2,3,6,6,6,2,-6,68,69,69,69,66,63,53,62,58,58,58,63,58,53,47,50,53,51,51,50,49,41,38,38,37,36,32,8,7,-79,-78,-95,-123,-128,-123,-89,-81,-75,-70,-55,-66,-84,-29,-29,-9,19,44,65,67,69,69,69,71,74,72,70,63,62,51,41,32,25,24,22,25,28,29,13,7,8,6,5,3,5,3,3,1,-1,-4,-6,-12,-22,-28,-33,-34,-45,-72,-74,-95,-99,-114,-115,-110,-103,-96,-82,-80,-69,-67,-68,-92,-97,-69,-66,-11,55,114,158,169,100,120,-19,23,-6,-42,-41,-49,-70,-72,-89,-90,-81,-39,75,86,101,87,67,88,184,135,106,117,125,134,107,22,15,-10,-7,-27,-9,-24,-29,-23,-1,-24,-30,-27,-42,-35,-22,54,43,39,61,65,82,58,47,39,22,16,7,2,-45,-10,-22,-22,-18,-24,-33,-37,-51,-51,-58,-61,-83,-93,-93,-86,-77,-24,83,54,91,123,56,99,56,-18,-11,-32,-19,-1,-23,-28,-11,-13,-9,-28,-23,-15,-10,28,33,45,57,64,61,72,32,18,13,12,4,-35,32,20,-9,-18,-36,-34,-30,-33,-80,-94,-94,-92,18,24,102,81,47,79,88,53,-2,-8,0,10,-30,-22,3,-23,-13,-8,-7,22,26,25,36,50,56,65,76,74,26,22,14,-20,5,10,-7,16,-31,-31,-29,-41,-53,-69,-92,-95,-87,-39,-92,27,37,112,63,81,77,76,22,-13,-19,-6,-23,-39,-11,-2,-14,1,39,33,39,11,8,34,20,15,15,38,50,52,63,65,69,83,80,39,36,40,17,5,4,-12,22,-29,-24,-30,-56,-89,-97,-84,-92,-87,-18,120,80,107,96,90,69,38,33,39,47,-18,-3,-26,-21,-12,1,19,13,-8,47,67,43,41,34,17,16,43,65,63,72,60,38,15,6,4,21,17,36,105,-25,-23,-50,-86,-96,-97,-93,-78,29,160,137,123,129,125,93,45,-16,-4,-9,-6,13,-2,-3,16,54,29,41,46,50,65,74,82,82,74,86,63,41,23,7,25,32,32,52,135,71,7,-18,-21,-25,-65,-91,-97,-102,-88,-67,45,78,100,133,138,116,55,47,18,-1,-6,30,24,13,16,18,29,43,50,22,24,49,82,77,80,73,70,72,45,49,31,21,16,14,24,74,89,108,80,-18,-23,-44,-80,-97,-97,-95,-13,7,50,126,143,142,119,111,69,55,52,19,6,1,-4,0,9,39,46,47,93,109,41,42,26,15,24,35,70,64,70,68,63,56,49,26,29,19,27,88,181,0,-15,-36,-41,-38,-71,-90,-93,-88,-42,-3,2,27,50,121,148,129,101,87,76,63,20,18,16,25,56,61,80,89,115,71,37,33,30,8,39,47,65,68,60,52,35,24,25,62,105,158,91,39,-6,-1,-28,-30,-83,-89,-79,-5,64,136,148,136,101,80,56,52,46,76,85,131,100,108,102,85,31,21,3,19,43,55,61,65,38,22,78,41,67,158,139,0,-2,11,7,-27,-30,-71,-85,-85,-69,-27,-2,69,130,150,150,142,128,88,71,67,73,88,129,96,20,-10,15,9,43,62,56,48,40,25,25,71,54,57,146,145,44,20,15,2,-4,31,16,-22,-44,-72,-71,-64,-18,-2,86,135,150,150,147,131,127,90,87,85,90,123,142,136,103,94,68,40,-14,-12,37,52,56,64,60,46,35,32,35,53,51,55,136,105,36,24,43,49,6,-6,-36,-59,-61,-58,-58,-12,52,113,152,152,148,119,102,119,137,79,57,56,15,-10,42,30,60,63,64,46,54,62,40,42,40,38,41,49,51,117,96,16,9,45,2,-19,-43,-36,-37,-40,-12,-1,61,118,148,155,148,118,111,108,104,102,60,55,53,19,31,49,59,61,62,65,68,54,51,67,49,44,51,49,51,44,51,62,104,99,87,12,31,23,3,-14,-17,-29,-31,-22,-22,-27,-21,24,78,126,153,139,110,84,86,65,64,77,73,70,76,78,73,70,71,74,73,58,67,63,65,51,51,52,53,62,35,91,32,22,18,11,14,19,2,-19,-18,-18,-6,36,83,123,150,153,140,121,105,70,60,77,105,112,118,118,118,127,119,87,77,59,58,58,63,62,56,58,71,73,35,32,32,41,86,79,33,23,14,12,-12,-18,-17,-10,44,139,157,137,137,114,107,63,62,133,136,143,148,144,153,144,85,55,59,71,41,38,25,48,58,32,23,0,-17,-12,5,25,66,102,130,153,147,114,62,46,64,112,143,145,151,159,162,168,169,135,125,74,78,62,62,63,65,76,24,66,34,-2,-4,-8,-10,-14,-20,-19,-12,-11,11,27,58,97,139,152,149,141,125,92,58,53,55,116,151,155,156,166,169,169,157,83,69,62,60,67,75,19,16,21,51,63,49,50,41,21,2,4,-15,-7,-3,9,18,44,52,54,60,95,98,114,145,154,159,133,128,98,77,74,145,153,153,154,155,150,158,161,179,182,169,138,72,64,64,66,69,14,28,58,64,39,6,5,-5,8,47,49,54,70,106,145,162,162,147,91,75,87,193,190,145,140,148,153,172,187,182,171,84,64,63,73,9,18,60,64,57,24,7,2,14,43,48,58,68,139,159,165,165,156,136,86,72,104,224,194,143,131,136,147,153,168,186,188,193,167,102,70,67,63,64,68,65,7,5,33,49,69,64,10,8,12,16,26,49,55,57,63,83,106,126,163,171,156,86,112,223,271,171,149,130,130,130,212,206,161,70,65,64]);

(Plot.interpolatorBarycentric())(I, w, h, X, Y, V)

I pruned your example down to 4 points that exhibit the bug:
https://observablehq.com/@observablehq/plot-interpolatebarycentric-bug-2035
The two errors appear to be on an edge between two triangles; probably because of non-robust triangle checks that put them in neither of the triangles.

It looks like dividing by z after the triangle tests are done fixes the issue.


Remove unused import in Getting Started for the Sway Book

Summary
In the screenshot below it can be seen that there is an import for BASE_ASSET_ID however it is not used nor necessary.
It should be removed.
Book Ref
Screenshot

@Braqzen I'll close this in favour of https://github.com/FuelLabs/sway/issues/1766 in which I copied your description above.


Offset Validation Nulls

Describe the bug
ArrayDataBuilder performs various validation of the offsets array. In particular, it validates that offsets are monotonically increasing and within the bounds of the values array.
However, it is my understanding that nulls can have arbitrary offsets and so I think this might be overly strict?
To Reproduce
let offsets = vec![2, 0, 2, 2];
let validity = vec![false, true, false];
let values = "ab";

let mut offsets_buffer = MutableBuffer::new(offsets.len() * 4);
offsets_buffer.extend_from_slice(&offsets);

let validity_buffer = MutableBuffer::from_iter(validity.iter().cloned());

let mut values_buffer = MutableBuffer::new(values.len());
values_buffer.extend_from_slice(values.as_bytes());

let arraydata = ArrayDataBuilder::new(DataType::Utf8)
    .len(validity.len())
    .add_buffer(offsets_buffer.into())
    .add_buffer(values_buffer.into())
    .null_bit_buffer(validity_buffer.into())
    .build()
    .unwrap();

Expected behavior
I would expect this to not error, as the non-null elements have valid offsets
Additional context
I encountered this whilst trying to produce a reproducer for a related bug, where the string comparison kernels panic in the presence of non-monotonically increasing offsets. This in turn was whilst working on a parquet string array decoder, where I was hoping to just leave offsets for nulls zero-initialized.

I am not 100% sure if supporting non monotonic offsets is something we want to fix to be honest.  My rationale is if the offsets are monotonic, all arrays with offsets can calculate length as offsets[i] - offsets[i-1] which has better failure properties than if we ended up doing stuff like 0 - 32 or something because the offset had been left unset
Thus
Also for fun, I checked @jorgecarleitao 's implementation in arrow2 which also ensures that offsets are always monotonic.
https://github.com/jorgecarleitao/arrow2/blob/37a9c758826a92d98dc91e992b2a49ce9724095d/src/array/specification.rs#L102-L119
I am pretty sure the C++ implementation also ensures the offsets are monotonic without first checking it is null: https://github.com/apache/arrow/blob/master/cpp/src/arrow/array/validate.cc#L568-L592

Will not fix would be a perfectly valid outcome of this ticket :+1:

I agree the spec is somewhat vague in this respect: https://arrow.apache.org/docs/format/Columnar.html#variable-size-binary-layout
Perhaps I can ask on the dev mailing list for a clarification ...

I think that in general the property we seek is: discarding the validity cannot result in UB when accessing the values. This justifies the values buffer of a primitive array is always initialized, and the offsets being valid and in-bounds even in null cases.
The rational for this is that sometimes it is faster to skip validity accesses and only iterate over the values (and clone the validity). I do not recall the benchmark result, but this may explain why string comparison ignores validity and & the bitmaps instead.

I created https://github.com/apache/arrow/pull/12019 to explicitly mention this case in the docs -- and we can iterate from there perhaps

The consensus appears to be that offsets should be monotonically increasing, so closing this


Reduce redefine type with DbBackEnd,prevent arbitrary invocation

Unified into one name to: DatabaseBackend,

@billy1624 It's cause build error by #965 .

Oh... okay loll


Explain pagination loop

Some comment in Endpoints::Index#call about the pagination loop would be helpful.

Closing because it's a duplicate of https://github.com/ioki-mobility/ioki-ruby/issues/11.


popovers: Migrate user status indicator tooltip to tippy.

Added a minor commit to replace the user status indicator tooltip with tippy.
As of now, kept the tooltip position (data-tippy-placement) as top.
Screeshots:

Merged, thanks @aryanshridhar!


Is this project still maintained?

Is this project still maintained?
I see the last commit was from about 5 months ago and a number of issues have been created without any reply.

We catch overloading features on our project during 2018 ~ 2019/Q1
I thought would to maintain by @trendmicro-frontend/dev this year :)

Feel free to create pull requests for making improvements to the component. That will speed up the progress of resolving past issues. 😄

Thanks..
https://github.com/burtonator/react-dropdown
https://github.com/burtonator/react-dropdown/commit/32baed751add43e9974dc534ec40cabf5cd4f4ba
https://github.com/burtonator/react-dropdown/commit/3020e33c2cb28c0c44294dd93debef82a2cbb740
I can send in PRs if this functionality is desired.

Hi @xJkit
Could you help review this TypeScript declaration file added by @burtonator?

This TS patch is just a new file and a change to package.json so you could just cherrypick the diffs easily.
Thanks fro the hard work here.
Now using react-dropdown here:
https://getpolarized.io/

@burtonator You can submit your PR for making the change. Thank you.


Integration Test - Release - 2019/08/01 23:02:38

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest2 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


test.rb:2:in `': uninitialized constant Mumble (NameError)

If I execute the example from the Basic Usage I receive the following error:
kfm.rb:2:in '<main>': uninitialized constant Mumble (NameError)
The installation seemed to go ok.

i have the same issue. im trying to build a bot but have no experience with ruby so i have no clue how to fix this....

is require 'mumble-ruby' in your code?


[Bug][config-ui] Current beta version number not correctly shown

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
The dashboard version display on a beta version in the config UI is broken:

What do you expect to happen
It should show 1.0.2-beta5@d821cbc. This would make it much easier to report bugs or understand if a git issue closed is inside the current version we use or not. Right now, the only way I could figure out how to get that version is to do: docker ps and get the version tag from there. But a Docker tag is not immutable, it can point to a different build over time, so I can't know for sure what version is used.
How to reproduce
Follow the steps at: https://devlake.apache.org/docs/GettingStarted/DockerComposeSetup.
Version
v1.0.2-beta5
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for reporting the issue, to be triaged.


examples/acp/apis not work,

createAcpCluster.ts
why cluster's reveiver isn't CHARLIE.address in ckb explorer? Is it because public key hash string in args add min ckb?
createSporeWithAcpCluster.ts

content cannot be string，throw error CodecExecuteError: Expect type undefined at input.content but got error: Invalid hex string.

      contentType: 'text/plain',
      content: 'spore with public cluster referenced',

2 .anyone-can-pay utxo in input and output Capacity is same。
I think slice error at first, but update to below，but still cant charge service fee to anyone-can-pay utxo
const argsMinCkb = clusterCell.cellOutput.lock.args.slice(42, 44);

please improve example for make it work.

why cluster's reveiver isn't CHARLIE.address in ckb explorer? Is it because public key hash string in args add min ckb?

because ACP lock is in another script which differentiates the regular Secp256k1 lock, so it'll produce different CKB address


Fix for issue 19428

Expanding the environmental variables before path combine
This allows %HOMEPATH% to be expanded to \Users\myuser before adding the system drive.

PR Checklist

[x] Closes: #19428
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[x] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Manual test and added unit test

The new unit test, test some strings to check if the FolderHelper.Expand returns a rooted path.
In the CI it does not expand the environmental variable %HOMEPATH% that was used to expose the problem.
So I cannot use it in the test.
%HOMEPATH% is usually converted to \Users(myuser) so a test with \Users was used to make sure it adds the system drive to it.


IN operator only return the first value

let ids = [1,2,3,4];
'SELECT * FROM user WHERE status = 1 AND id IN [ ids ]
will only return the user with id = 1.

That syntax does not look right in multiple ways. Can you show the full javascript?

module.exports.GetProductVariant = (result ,callback) => {
console.log("here " +result);
let variants = [{
    variant_id : "",
    variant_name : "",
    variant_ext_cost : ""
}];

let fields = ['shipping_id', 'shipping_name', 'shipping_pi', 'estore_shipping', 'status', 1, 'shipping_id', result];
let sql = "SELECT ??, ??, ?? FROM ?? WHERE ?? = ? AND ?? IN (?)";
sql = mysql.format(sql, fields);

db.query(sql, (error, result, fields)=>{
// let ids = result;
// console.log(ids);
// // db.query('SELECT shipping_id, shipping_name, shipping_pi FROM estore_shipping WHERE status = 1 AND shipping_id IN (SELECT(UNNEST($1))',[result], (error, result)=>{//sql, (error, result, fields)=>{
// db.query('SELECT shipping_id, shipping_name, shipping_pi FROM estore_shipping WHERE status = 1 AND shipping_id IN (SELECT(UNNEST($1))',[ids], function(error, result){//sql, (error, result, fields)=>{
    if(error){
        console.log(error /* + " " + sql */);
        return callback(error, null);
    }

    if(result){

        console.log("fdgfsdhdhdfhsfd "+ JSON.stringify(result));
        variants[0].variant_id = result[0].shipping_id;
        variants[0].variant_name = result[0].shipping_name;
        variants[0].variant_ext_cost = result[0].shipping_pi;
        console.log("dsgdgsdfgsfdgsd  "+ JSON.stringify(variants));

        return callback(null, variants);
    }

});

}

// function call
pichereStore.GetProductVariant(result[0].shipping_id, (error, resObj)=>{
resData.product.variants = resObj;
return callback(null, resData);
})
// result if I console.log(resData)
[{"variant_id": 1, "variant_name": "Option 1", "variant_ext_cost": 0 }]  //only the first value of from result(inside fields)

For us to format your IN currently, result needs to be an array of strings or numbers; an array of objects is not supported by our builder.

Will it be supported in the future? Can I make a pull request for this issue?

Yea, we can try to support if possible. You're welcome to either (a) make a pull request with the chabge you want or (b) describe how you're thinking an array of objects should be formatted (i.e. what you expect the output of mysql.format('?', [[{foo:"bar"},{fizz:"buzz"}]]) to be so we can try as well :+1:

I`m appreciate if you can do something like this:
[
{
"id": 1,
"name": "Option 1"
},
{
"id": 2,
"name": "Option 2"
},
{
"id": 3,
"name": "Option 3"
}
]

That doesn't look like SQL, is it?

Just can you show what the outout of the following should be, in SQL:
mysql.format('?', [[{foo:"bar"},{fizz:"buzz"}]])

[
{
"id": 1,
"name": "Option 1"
},
{
"id": 2,
"name": "Option 2"
},
{
"id": 3,
"name": "Option 3"
}
]

If you mean this is the format of the result variable. You can map it first as id, then add it to the parameter.
result = result.map(x => x.id); // Resulting to [1,2,3]

Here is your final code.
let fields = ['shipping_id', 'shipping_name', 'shipping_pi', 'estore_shipping', 'status', 1, 'shipping_id', result.map(x => x.id)];
let sql = "SELECT ??, ??, ?? FROM ?? WHERE ?? = ? AND ?? IN (?)";

solved, my list of ids has been treated as string including commas ",". resolve by remove all commas and store in an array.