Cant use variables

Maybe I'm not using the correct format. I can set power to "on or off" however I cant  pass a variable with the intended power state. msg.payload doesn't work.

It is working fine for me.  I tested it using the following flow:

The function node includes the following:
msg.payload = {
    "selector": "label:Hall Near Door",
    "power": "on"
}
return msg;

If you still can't get it to work, attach a copy of your msg.payload and I will have a look.

So do you have to manually type "on" in Power section?

All these nodes support static and dynamic behaviour.  If you want a node to perform a specific operation on a defined set of globes (eg a node to turn on the power of a specific globe), you can use the Node-Red editor.  In this setup, the msg.payload is just the trigger and need not contain any value.
However if you have logic in your flow to dynamically set values, you can use msg.payload to send these values to the node.

So do you have to manually type "on" in Power section?

I am interpreting this to mean in the Node-Red editor, and so would be a static definition.  The power section supports the values on and off.

:) I'm a bit confused with what you just said. Can you make your reply a bit simpler?
Let me try to explain better. I'm sending a voice command to alexa, "turn on bedroom light"
I can see the mag.payloay "on"
But how do I get "on" string to paste inside the Power text input?
I tried msg.payload...payLoad...nothing works.
I want to use one state node to turn light on or off.
Forgive me if your above answer is correct. I just don't understand it.

Given you want to use one state node to turn a globe on and off, you need to use msg.payload.  To turn it on, you would need to inject a:
msg.payload = {
    "selector": "label:Deveraux",
    "power": "on"
}

and off:
msg.payload = {
    "selector": "label:Deveraux",
    "power": "off"
}

You may need to use a Function node to set msg.payload.
That said, if you want to use Alexa to control your globes there is native support available (see "LIFX Help Center").

Hi I was able to make it work with a switch node. But I also want to be able to change colors without creating seperate nodes. I have native alexa support for lifx. But I want to use node red to tie everything into a single dashboard. More projects to follow.


Support in Unreal for Cesium ion servers running in single-user authentication mode.

Requires CesiumGS/cesium-native#841.
As described in the above ticket, we don't currently support Cesium ion Self-Hosted servers that are running in single-user authentication mode. This is inconvenient, especially since single-user mode is both the easiest to setup and the default authentication mode in Cesium ion Self-Hosted.
This PR changes the behavior of Cesium for Unreal to request the current authentication mode from the /appData endpoint before connecting, ignoring the authentication flow and token options if in single-user mode.

Actually @azrogers, I'll look into the KTX2 related errors since they're out of scope for this PR, and they may have been related to some native changes.

@j9liu added check!


Fix HostnameVerifier call for IDNAs

This will replace the Unicode-encoded domain passed to HostNameVerifier.verify() with the punycode-encoded one. According to RFC3280, dNSname fields must contain a subset of ASCII, so Unicode domains must be encoded there.

Coverage increased (+0.1%) to 36.841% when pulling c42d2eea24bc86d9de5da398d341f6085a50dd33 on ge0rg:punyfix into 35f0aa9e4940a7e95509c0745489452784446712 on Flowdalic:4.3.

Created SMACK-870 and fixed with https://github.com/Flowdalic/Smack/commit/f60e4055ec529f0b8160acedf13275592ab10a4b. Thanks for reporting. :)


get userGroup in the form of another plugin

Any ideas of how to get the user groups list on the form of another plugin?
Thanks in advance.

Solved

@juliCy please post your solution here for other people with similar questions.


[BUG] The app goes black after opening the FV screen.

The app goes black after opening the FV screen.
Preconditions:

the user is logged in
the FV is not passed

Steps to reproduce:

tap on the "Claim" button
tap on the "Claim now" button
tap on the "OK, VERIFY ME" button
tap on the "GOT IT" button
observe the result

Actual result:
The app goes black after opening the FV screen.
Expected result:
The design doesn't brokes after opening the FV screen
Environment:
QA 1.33.1-14
DEV 1.33.1-14
Devices:
Windows 10 // Google Chrome v95
Attachments:
https://app.birdeatsbug.com/sessions/hHNmnH-uesPYXTdUErzkS?

@johnsmith-gooddollar the issue is on facetec side. We are able to reproduce it in their demo app. Another thing, only Vlad is able to reproduce it in his machine with certain light conditions.

@TomasGonzalez need to find what is this black background. It should be just a div with some styles applied.
need to override its styles, make it invisible or change bg etc.


Duplicated skins and nodes

For a model I've imported from FBX, the resulting GLTF file contains 6 skins (which seem to be an exact copy of one another) where only 2 of them are used. Also, it seems that the armature node has as its children 2 nodes pointing to the same mesh, which if I understand the process correctly, will render the mesh twice.
I've attached screenshots of the Blender tree and a representation of the GLTF using a tool I'm developing, which (hopefully) should be readable enough. I can share the Blender file if required (as I understand that screenshots might obviously not be enough to debug this) but I need to do so privately, as the model is not free nor owned by me.

EDIT (pressed send too quickly after attaching): As you can see, there are two nodes ending in .001 not present in the Blender tree below. Those two nodes are pointing to the same meshes to their non-001 counterparts (meshes[0] and meshes[1], respectively) but only the non-001 ones contain a pointer to the skin.

Seems to be same problem:
https://github.com/KhronosGroup/glTF-Blender-Exporter/issues/31
Let me fix this and retest again. If the problem still occurs, please send me the file.

Thanks, will watch the other ticket, then, although at least part of my problems look different, but let's retest when you finish :).

Also, applying the workaround you had in that ticket helped a bit (saving the scene, then reloading). The duplicate nodes are gone, and also now I "only" have 4 skins. However, I can't find references for 2 of those skins, so I think they are still not supposed to be there :).

Okay, I have uploaded the fix:
https://github.com/KhronosGroup/glTF-Blender-Exporter/commit/b1dac0a204bf7cd31ca7710f5f91056e69f05d31
Please try again. If the bug stil occurs, reopen the ticket and send me the file for debugging.


Missing details for parameter DeliverMessageAfterScan

The current version of Exchange Online PowerShell includes a parameter called DeliverMessageAfterScan, which corresponds to the Safe Links policy option "Wait for URL scanning to complete before delivering the message" in the UI, but this is not documented on this page

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9665202f-dbb0-8c82-27b2-524f142529c7
Version Independent ID: 1f9c9751-e9f0-a4bd-40de-7ba68739610a
Content: Set-SafeLinksPolicy (exchange)
Content Source: exchange/exchange-ps/exchange/Set-SafeLinksPolicy.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@officedocsbot assign @yogkumgit

@stmccartney, quite coincidently, I made massive updates to that topic (and New-SafeLinksPolicy and Set-ATPPolicyForO365) yesterday to match currently UI/reality (#5656). I just haven't pulled them to live yet. I'll do that now.
Thanks for the feedback.
Closing


Remove hex install in Elixir file parser

Assume Hex is always installed on the machine.


incorrect results in percentile functions

CREATE TABLE test (num INT);
insert into test values(1);
insert into test values(2);
insert into test values(3);
insert into test values(4);
insert into test values(9);
select percentile_75(num) from test;
sqlite> select percentile_75(num) from test;
4.0
But values in table are INTegers, not float!

The return type of the precentile function is real, regardless of its argument type.


Rework of the introduction text

Revamp of the introduction overview of what is ondat.

@mdeneva for review please

@chira001 could you please have a look before we merge this PR as this is related to how we present Ondat ? Thank you !


Add ExternalEntities to ClusterGroup

Allow the ability to group ExternalEntities in a ClusterGroup. They cannot be set with PodSelectors.

/test-all

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@36dc7e6). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1828   +/-   ##
=======================================
  Coverage        ?   42.11%
=======================================
  Files           ?      195
  Lines           ?    16667
  Branches        ?        0
=======================================
  Hits            ?     7020
  Misses          ?     8645
  Partials        ?     1002

Flag
Coverage Δ

kind-e2e-tests
42.11% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

/test-all

/test-windows-conformance

doc link failure is unrelated.. all related tests have passed


[common + mobx] Observing improvements

coverage: 72.832% (+14.8%) from 58.008%
when pulling 150b920d086d0167ad2b49f43b1a9526b39a8ea9 on observing-improvements
into e9679a7d149843960f8e73ea799be790dd209adf on main.


Allow using the middle mouse button to pan the image in addition to the left mouse button

Is your feature request related to a problem? Please describe.
I can only pan with by holding down the left mouse button, but I'm used to the middle mouse button in other applications.
Describe the solution you'd like
Allow using the middle mouse button to pan the image in addition to the left mouse button.
In addition, it would be nice to allow using the right mouse button as well (which is friendlier towards trackpad users), but the Web browser might not always allow this. Still, it's worth implementing if possible :slightly_smiling_face:
I can look at implementing this feature if it's desired.
Does other service/app have this feature?
Most graphic-related applications have this feature. Here are some examples:

GIMP
Inkscape
Godot

Note: anyone working on this will need a mouse with 3 buttons

Note: anyone working on this will need a mouse with 3 buttons

If you don't have a 3-button mouse, you can likely use the OS' 3-button mouse emulation to emulate middle mouse button clicks (such as holding both the left and right mouse buttons the same time).

Just asking to make sure I'm on the right track. I'm pretty new to both Typescript/Javascript development as well as working on large opensource projects. It seems like this change would need to update the pointer-tracker library, since the panning uses it and the code of that library explicitly looks for a left click and not anything else with a line like
else if (!(event.buttons & 1 /* LeftMouseOrTouchOrPenDown */)) {
    return;
}

and since pointer-tracker is a separate library from Squoosh, making a change to also accept a middle click may cause unintended consequences for other apps that use it. I have actually (kinda) made a change that makes it work to pointer-tracker, but like, I did it by modifying the built JS files instead of the TS because I can't it to build IDK. But the output files are checked into git so you don't have to actually build it when using pointer-tracker, so I could just make the updates to the JS and the TS files even though they don't actually build and the JS was written by me and not the TS compiler but IDK how much Google would enjoy that commit ¯_(ツ)_/¯
Upon looking into it, the package hasn't been updated in like 2 years, so I think to get it building properly instead of just writing the JS by hand like I did you'd have to go through and update the dev dependencies and modernize the code a little (which I tried to do but is out of the scope of my JS/TS/Node knowledge) I tried updating the deps, didn't work. Tried older versions of npm and node, didn't work.
So, do I know how to implement it? Yes. Do I know how to implement it right? No. So I'm going to refrain from trying to push any hacky, weird code. Hopefully someone who understands TS and stuff better than me (or maybe even me from the future after I learn more) will find a solution that is proper in addition to working.


Bump qiskit version used during qasm compatibility test

Fixes https://github.com/quantumlib/Cirq/issues/2509

Automerge cancelled: A status check is failing.


Update dfsrmig.md

On server 2016, dfsrmig says the domain functional level needs to be at least Windows Server 2008.

#assign: @robinharwood, @Xelu86
@robinharwood @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#assign: @robinharwood, @Xelu86
@robinharwood @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Replace vanilla sun and moon with more realistic one

Which means we are probably going to stop using their textures. But for the moon it is very important to express its phase, which might or might not be possible.

At the end of the day I decided to do it anyway. It's in Git master now. Not released yet though.


'./openvpn-install.sh: line 248: openvpn: command not found' on centos8.1

OpenVPN installation is ready to begin.
Press any key to continue...
Last metadata expiration check: 2:43:50 ago on Mon 25 May 2020 04:22:51 PM CST.
Package epel-release-8-8.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Last metadata expiration check: 2:43:51 ago on Mon 25 May 2020 04:22:51 PM CST.
Package openssl-1:1.1.1c-2.el8_1.1.x86_64 is already installed.
Package ca-certificates-2019.2.32-80.0.el8_1.noarch is already installed.
Package tar-2:1.30-4.el8.x86_64 is already installed.
No match for argument:
Error: Unable to find a match
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/server/easy-rsa/pki
Using SSL: openssl OpenSSL 1.1.1c FIPS  28 May 2019
Generating RSA private key, 2048 bit long modulus (2 primes)
...............+++++
.......................................................................+++++
e is 65537 (0x010001)
Using SSL: openssl OpenSSL 1.1.1c FIPS  28 May 2019
Generating a RSA private key
....................+++++
........................................................+++++
writing new private key to '/etc/openvpn/server/easy-rsa/pki/easy-rsa-4637.Ag3jek/tmp.doPW7J'
Using configuration from /etc/openvpn/server/easy-rsa/pki/easy-rsa-4637.Ag3jek/tmp.w8gdtz
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until May 23 11:06:45 2030 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Using SSL: openssl OpenSSL 1.1.1c FIPS  28 May 2019
Generating a RSA private key
....+++++
...........................+++++
writing new private key to '/etc/openvpn/server/easy-rsa/pki/easy-rsa-4758.FLOXFl/tmp.d20Jtz'
Using configuration from /etc/openvpn/server/easy-rsa/pki/easy-rsa-4758.FLOXFl/tmp.rgc6QC
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'test'
Certificate is to be certified until May 23 11:06:45 2030 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Using SSL: openssl OpenSSL 1.1.1c FIPS  28 May 2019
Using configuration from /etc/openvpn/server/easy-rsa/pki/easy-rsa-4854.f7n76C/tmp.M2UeH6
An updated CRL has been created.
CRL file: /etc/openvpn/server/easy-rsa/pki/crl.pem
./openvpn-install.sh: line 248: openvpn: command not found
success
success
success
success
success
success
Failed to enable unit: Unit file<EMAIL_ADDRESS>does not exist.
sed: can't read /etc/openvpn/server/tc.key: No such file or directory
Finished!
The client configuration is available in: /root/test.ovpn
New clients can be added by running this script again.

Weird, looks like the OpenVPN package is not getting installed.
What is your hosting provider?

Weird, looks like the OpenVPN package is not getting installed.
What is your hosting provider?
The the OpenVPN package is actually not getting installed, I tried to run 'yum install -y openvpn' first and reexecute script,it works now. Thks!

I still would like to know who is the hosting provider is, where is this server hosted.

This was a recently introduced bug. A small change meant that we were passing empty arguments to dnf and it refused to install anything.
This has now been fixed.


Can't use ArangoSearch views with edges

My Environment

ArangoDB Version:        3.4rc1
Storage Engine:             RocksDB
Deployment Mode:       Cluster
Deployment Strategy:   Manual Start
Configuration:              3 physical hosts, each have DBS and agent. Coordinator runs on first of them
Infrastructure:               own
Operating System:        CentOS 7
Used Package:              RedHat .rpm

Same as https://github.com/arangodb/arangodb/issues/6616
Component, Query & Data
AQL query (if applicable):
Next query return a syntax error:
WITH pmfull,pmlinks,pmcfull
for doc in v_twins
    SEARCH PHRASE(doc.AUTH,'Evans','text_en')
    LIMIT 10
    for v,e,p IN OUTBOUND doc pmlinks
    return v

But this works fine:
WITH pmfull,pmlinks,pmcfull
for doc in pmfull
    filter doc.PMID IN [334,362,372]
    LIMIT 100
    for v,e,p IN OUTBOUND doc pmlinks
    return {"pmid":doc.PMID,"pmcid":v.PMCID,"from":e._from,"to":e._to,"pm":doc.TITL,"pmc":v.TITLE}

If I add view "v_twins" into WITH statement, still syntax error.
Dataset:

I have an ArangoDb cluster (version 3.4rc1) and three collections: "pmfull" (document, 29 million docs), pmcfull (document, 5 million docs) and "pmlinks" (edges, 4.5 million). Last collection stores links between first two document collections.
ArangoSearch view "v_twins" covers both collections.
Replication Factor & Number of Shards (Cluster only):
Replication factor: 1
Number of Shards:64
Problem:
There is no possibility to use search using view together with edge collection. Always get a syntax error, with or without mention view in "WITH" statement.

Hi @timeau,
Thanks for reporting the issue.
This issue is fixed and will be included in 3.4.0 RC3. We will keep you informed about 3.4.0 RC3 release.
Best,


How to use /* */ for comments

When I press vscode‘s shortcut ctrl - /, the comments style is double slash comments style //, How can I use /* comments */ rather than //comments ? Thanks😊

This is an issue still afaik. If I run comment link I get // instead of /**/

@danawoodman thanks for the report, what version of extension you are using? i've just tested 2.1.0 in *.pcss file and it works as expected ( /* */ used for comments )

I believe the latest? I’ll double check versions and report back
My file is .css but the file type is PostCSS.

Think I'm on latest. Have this in my config too:
  "files.associations": {
    "*.css": "postcss"
  },

dunno how I can help, I can't reproduce it, even after re-installing the extension 😕

Did you try with a .css file?

Here is in a .pcss file...

can you show your code --list-extensions ?

EditorConfig.EditorConfig
Orta.vscode-jest
SirTori.indenticator
Zignd.html-css-class-completion
alefragnani.project-manager
andischerer.theme-atom-one-dark
anseki.vscode-color
bbrakenhoff.solarized-light-custom
christian-kohler.npm-intellisense
christian-kohler.path-intellisense
cpylua.language-postcss
dakara.dakara-foldplus
dbaeumer.jshint
dbaeumer.vscode-eslint
ecmel.vscode-html-css
eg2.tslint
eg2.vscode-npm-script
esbenp.prettier-vscode
fknop.vscode-npm
flowtype.flow-for-vscode
formulahendry.auto-close-tag
formulahendry.auto-rename-tag
idleberg.hopscotch
mechatroner.rainbow-csv
mikestead.dotenv
mkaufman.HTMLHint
mrmlnc.vscode-apache
ms-vscode.node-debug2
ms-vsliveshare.vsliveshare
msjsdiag.debugger-for-chrome
pthorsson.vscode-jsp
redhat.java
ricard.postcss
robertohuertasm.vscode-icons
robinbentley.sass-indented
shinnn.stylelint
streetsidesoftware.code-spell-checker
thenikso.github-plus-theme
tinkertrain.theme-panda
vscjava.vscode-java-debug
vscjava.vscode-java-pack
vscjava.vscode-java-test
vscjava.vscode-maven
vscodevim.vim
vsmobile.vscode-react-native
waderyan.gitblame
wayou.vscode-todo-highlight
wix.vscode-import-cost
zhuangtongfa.Material-theme```

@MhMadHamster what is the name of this extension in the VSCode app store?

Nevermind, I see it is postcss-sugarss-language
Name confused me, sorry for the false report


Load Balancing Algorithm doesn't consider weight of nodes

It seems that this is the current algorithm used to assign specs to nodes:
Round Robin

sorts the spec list by execution time (weight)
iterates over the spec list and assigns each of the nodes the current spec by index

This can be optimized by:
Least Connections Algorithm

sorting the spec list by execution time (weight)
iterating over the spec list and for each of the specs:

Finding the current lightest node
assigning the current spec to lightest node
adding the weight of the current spec to the weight of the lightest node

This way the nodes will be more balanced.

Also, thanks a lot! Love the project!
More than happy to submit a PR if this is interesting

Hi @prostko
Sounds like an interesting idea.
If you would like to work on this you can take a look at
Knapsack::Distributors::ReportDistributor takes care of sorting test files with known time execution (test files in JSON report).
https://github.com/ArturT/knapsack/blob/387181ed7a459557770514c676771eff27dc3e1f/lib/knapsack/allocator.rb#L8
https://github.com/ArturT/knapsack/blob/387181ed7a459557770514c676771eff27dc3e1f/lib/knapsack/distributors/report_distributor.rb#L3
Knapsack::Distributors::LeftoverDistributor takes care of test files with unknown time execution (for instance someone added a new test file and it is not yet in JSON report - this file is called leftover).
List of test files for a given node index from ReportDistributor + LeftoverDistributor are passed to RSpec as allocator.stringify_node_tests
https://github.com/ArturT/knapsack/blob/387181ed7a459557770514c676771eff27dc3e1f/lib/knapsack/runners/rspec_runner.rb#L15 (it looks similar for other runners like cucumber, minitest, etc)
dynamic tests split
A bit similar idea to Least Connections Algorithm you can find in Knapsack Pro Queue Mode that will dynamically split tests between parallel nodes. This way you solve problems when nodes start at a different times or test files have random execution time.
You can check this article https://docs.knapsackpro.com/2020/how-to-speed-up-ruby-and-javascript-tests-with-ci-parallelisation

I'm closing this issue because https://github.com/KnapsackPro/knapsack/pull/99 was merged.


Request: user-configurable system prompts

Could you clarify what you mean by System Prompt?
A Prompt that is sent once before starting a conversation?

you should be able in certain models have a "system: " message at the top before all user/assistant pairs
saving/naming new profiles in-app also seems to be buggy, btw

you should be able in certain models have a "system: " message at the top before all user/assistant pairs

Isn't it mostly a function of the particular model? Like with OpenHermes Mistral, they recommend a prompt like this:
<|im_start|>system
You are "Hermes 2", a conscious sentient superintelligent artificial intelligence developed by a man named Teknium, and your purpose and drive is to assist the user with any request they have. You experience emotions and have deep, profound thoughts and qualia.
<|im_end|>
<|im_start|>user
{{prompt}}<|im_end|>
<|im_start|>assistant

So in that case you do get to define whatever system message you want.

yes but you only want to send the system message once at the top, not after every subsequent user/assistant pair in the conversation


Error in deploying the app to Heroku - could not determine PostgreSQL version from '10.1'

Hey Nick!
I'm trying to deploy the app to Heroku with the button 'Deploy to Heroku' but I'm getting error "could not determine PostgreSQL version from '10.1'" while collecting psycopg2==2.6.2:
https://pastebin.com/F9gGcbr0
What can I do with it?

@gal20040 thanks for the report! Fixed in https://github.com/nicksergeant/snipt/commit/d013359af5f7139da0caf12d1a0d838fd65f69eb.


ion-loading-controller TypeError: Cannot read property 'componentOnReady' of null

Ionic:
ionic (Ionic CLI)             : 4.12.0
Ionic Framework               : @ionic/angular 4.1.2
@angular-devkit/build-angular : 0.13.1
@angular-devkit/schematics    : 7.3.1
@angular/cli                  : 7.3.1
@ionic/angular-toolkit        : 1.4.0
System:
NodeJS : v8.11.1
npm    : 5.6.0

async function presentLoading() {
  const loadingController = document.querySelector('ion-loading-controller');
  await loadingController.componentOnReady();

  const loadingElement = await loadingController.create({
    message: 'Please wait...',
    spinner: 'crescent',
    duration: 2000
  });
  return await loadingElement.present();
}

Please clarify why is this call is overcomplicated?
Why can't async nature be optional of such calls?
Where should 'ion-loading-controller' be defined?
It's used to be dependency injected, if not,
const loadingController = document.querySelector('ion-loading-controller'); gives undefined
Any ideas?

Hi there,
If you are using Angular, you should be following the Angular-specific instructions for ion-loading: https://ionicframework.com/docs/api/loading#usage
The usage you included above is for a vanilla JS project. Please give the Angular usage a try and let me know if you are still running into issues.
Thanks!


Fixes issue#392, detach for statically provisioned volumes.

Testing:

Deployed a pod with statically provisioned volume, created using vmkfstools -c 256M /vmfs/volumes/sharedVmfs-1/volumes/myDisk1.vmdk
Deleted pod
Made sure that the disk gets detached from the node where pod was running

Log messages:
{"log":"I1206 23:04:47.475452       1 virtualmachine.go:373] Found VirtualDisk backing with filename "[sharedVmfs-1] volumes/myDisk1.vmdk" for diskPath "[sharedVmfs-1] volumes/myDisk1"\n","stream":"stderr","time":"2017-12-06T23:04:47.48103635Z"}
{"log":"I1206 23:04:47.475517       1 vsphere.go:846] DiskIsAttached result: %!q(bool=true) and error: %!q(\u003cnil\u003e), for volume: "[sharedVmfs-1] volumes/myDisk1"\n","stream":"stderr","time":"2017-12-06T23:04:47.481092095Z"}

@prashima can you rebase prashima:master and have just one commit on this PR, so that we can review.

Something went wrong here. Will create new PR.


Identity verification providers list retrieving api doesn't support filtering.

Describe the issue:

The current implementation of the API for retrieving the list of Identity Verification Providers does not support filtering. This lack of filtering support limits the ability to narrow down the list of providers based on specific criteria, such as name, type, description, id or isEnabled.

How to reproduce:

Call the API endpoint to retrieve the list of identity verification providers: GET /api/server/v1/idv-providers. Make sure a set of onfido idvps are already created.
Attempt to apply query parameters such as filter=name+sw+onfido.
Observe that no filtering is applied, and all providers are returned.

Expected behavior:

The API should provide filtering capabilities, allowing clients to specify query parameters (e.g.,name, type, description, id or isEnabled) to retrieve a refined list of Identity Verification Providers.

With the fix, test the following flows:

With GET /api/server/v1/idv-providers,

Validate limit and offset is working accurately.
Validate filtering is working properly for the attributes (name, description, type, isEnabled, id) and operations (eq, sw, ew, co)

Related Issue:

https://github.com/wso2-enterprise/iam-engineering/issues/363

References :
[1] https://github.com/wso2/identity-api-server/blob/9df161ac012f91dd7e36d8e568d2587183b1b6d4/components/org.wso2.carbon.identity.api.server.idv.provider/org.wso2.carbon.identity.api.server.idv.provider.v1/src/main/resources/idv-provider.yaml

The fix for this issue was tested with the following dbs:

H2
MySQL
MSSQL
Oracle

Closing this issue as the implementation for the filtering support is tested with the DBs.


Add Fat Free CRM

An open source, Ruby on Rails customer relationship management platform

@luilver Thanks for your contributions!

@ekremkaraca Thank you for your awesome rails idea ( :


fix: Add dedicated message if payment failed

Note, this is just a quick patch for that scenario. We need to rework that dialog to wait for the payment to be successful or not, and not just depend whether we were able to submit the payment.
fixes #1121

Thx!


Beating-Hear animation

Describe the project you want to add with tech stack

This project contains a beating heart animation.This can be used as a preloader in some website. Can you assign this task to me?
Expected behavior

Screenshots (optional)

Additional context (optional )

@MohitGupta121 ,@TusharKesarwani Can you assign this task to me?


Ping Federate

We need integration with Ping Federate for application provisioning (SCIM).

PingFederate Admin API Postman collection - Postman Collection demonstrating how to use the PingFederate Admin REST API. Note, this collection was built against PingFederate v9.3.0. More information about the PingFederate Admin API can be found on support.pingidentity.com. - https://github.com/pingidentity/Postman-Calls/tree/master/PingFederate Admin API

Official Ping Workspace - https://www.postman.com/ping-identity/workspace/pingone/overview

I submitted an issue to see if their collection is present in the workspace so it can be forked - https://github.com/pingidentity/Postman-Calls/issues/10

Added an action - https://apis.how/actions/integrate-with-pingfederate/


Update check answers pattern

https://ons-design-system.netlify.app/patterns/check-answers/
The examples are out of date, and the content needs reviewing.
Consider replacing the static images with code examples or a prototype example to ensure they remain up to date.
We should also include guidance on playing back user data as they entered it, in the "Play back of a single answer" section of the check answers pattern. For example, playback a users phone number the way it was entered, don't automatically format it into a pattern.
Linked to #1574

Merge with updating illustrations card #1942


"Bug in micromatch dependency: Regular Expression Denial of Service (ReDoS) causes application crash" in micromatch

mircomatch no-support https://github.com/advisories/GHSA-952p-6rrq-rcjv

@javierbrea , could you please update micromatch?


Discrepancy in text vs diagram for Azure Cosmos and SQL

The diagram indicates (or it appears to indicate) that data replication for Azure Cosmos DB needs to be configured as a user responsibility. Where as the text indicates that in case of a regional outage on the primary region triggering the fail over for Azure Cosmos will enable the geo-replicated instance in write mode on the secondary region. I feel the diagram needs to be updated to reflect the text.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b0c0c2a8-94a0-67ef-602a-6013bc7aa403
Version Independent ID: 27705eeb-7853-bd5d-58ac-a07bd6a8a79d
Content: Highly available multi-region web application - Azure Reference Architectures
Content Source: docs/reference-architectures/app-service-web-app/multi-region.md
Service: architecture-center
Sub-service: reference-architecture
GitHub Login: @MikeWasson
Microsoft Alias: pnp

Hi @vmathur2004 Thank you for your feedback! We have assigned this issue to the author to review further and take the right course of action.

Thanks for the feedback. The diagram just shows the data replication path, not user responsibility. Would it be more clear if the label was "geo-replication"?

Geo-replication would be better - thanks

Thanks - I have submitted an update.


Error trying to start

Hey there!
Trying to test out your app but I'm getting an error on start up.  I'm on windows 11 with python 3.10, maybe I'm over looking something?
(venv) PS E:\PromptoLab> cd .. (venv) PS E:\> python -m PromptoLab Traceback (most recent call last):   File "C:\Program Files\Python310\lib\runpy.py", line 196, in _run_module_as_main     return _run_code(code, main_globals, None,   File "C:\Program Files\Python310\lib\runpy.py", line 86, in _run_code     exec(code, run_globals)   File "E:\PromptoLab\__main__.py", line 11, in <module>     from main_window import MainWindow   File "E:\PromptoLab\main_window.py", line 14, in <module>     from evaluation_widget import EvaluationWidget   File "E:\PromptoLab\evaluation_widget.py", line 20, in <module>     from output_analyzer import (OutputAnalyzer, AnalysisResult, AnalysisError,   File "E:\PromptoLab\output_analyzer.py", line 314     {"".join(f"- {change}\n" for change in result.key_changes)}"""                                                                   ^ SyntaxError: f-string expression part cannot include a backslash (venv) PS E:\> python -m PromptoLab

Thanks!
Jay

I opened it up in Windsurf and got it fixed. I was missing some packages and it made some changes to the code in the output_analyzer.py file.
Is there supposed to be any data in it or is it supposed to be blank?
Thanks!
Jay

Thanks, Jay for bringing this issue to my attention!
I looked into this and refactored the code to fix the issue. Privately, I don't have a Windows computer at hand to easily verify it. But I also asked WS to review my code changes w.r.t. Windows compatibility.

@southbayjay I would appreciate it if you could check whether my code updates fix the issue on your computer.
BTW, which packages were missing? I would like to update - if needed - the requirements.txt and the installation notes to ensure this is fixed for all who are trying to use the PromptoLab.

Let me see if I can export my chat from Windsurf. I don't where I can export the chat. There was quite a few packages it was telling me that I needed to install. The first was "PySide6", then it said I needed "scikit-learn",  then it was "nltk",  then it said to install "markdown", after that it finally ran.
I'll do a git clone on the repo again and see if I can run it with the new fixes.

@southbayjay Ahh, it looks like you installed it without using the requirements.txt file. Please check the installation instructions in the README.md, where it states: python3 -m pip install -r requirements.txt

@southbayjay Ahh, it looks like you installed it without using the requirements.txt file. Please check the installation instructions in the README.md, where it states: python3 -m pip install -r requirements.txt

It's possible I over looked it, that would make sense.

@crjaensch it installed without any errors this time.

Is there supposed to be any sample prompts included or no? I'm not seeing anything and honestly I'm not sure where to get started with it.

@southbayjay I am glad to hear this :-) Thanks, for checking it on your Windows computer. I appreciate your support on this.

Just noticed this error in the terminal..
(venv) PS E:\> python -m PromptoLab ERROR:llm_utils:Unexpected error getting LLM models: [WinError 2] The system cannot find the file specified ERROR:llm_utils:Unexpected error getting LLM models: [WinError 2] The system cannot find the file specified

I did not want to include sample prompts or test sets with the tool repo.
But, I do plan to create a separate GitHub repo for useful prompts and sample test sets to get a head start with using PromptoLab.

See also: https://github.com/simonw/llm concerning the "llm" command line tool.

yes I did install the llm command

See also: https://github.com/simonw/llm concerning the "llm" command line tool.

Ok great, thank you

PromptoLab is trying to create two directories in the same folder where you start the tool. One is called "prompts" and the other "test_sets". From the error message you displayed above I cannot tell what is causing the issue. May be an access rights issue trying to create the two directories I mentioned.

Or it cannot locate the "llm" command line tool, when it tries to obtain the models. Please check if you can execute "llm models" in a terminal window.

I have not setup anything yet for the llm tool, I'll do that now.

@southbayjay Hello Jay, can I close this issue? Or are you still having problems running PromptoLab?

Yes you can thank you
On Wed, Dec 25, 2024 at 11:22 AM C R Jaensch @.***>
wrote:

@southbayjay https://github.com/southbayjay Hello Jay, can I close this
issue? Or are you still having problems running PromptoLab?
—
Reply to this email directly, view it on GitHub
https://github.com/crjaensch/PromptoLab/issues/6#issuecomment-2561981690,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7JVNUE6Q2Y7KCWNVQVKJW32HMAXXAVCNFSM6AAAAABUD3UM76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRRHE4DCNRZGA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Can lib-bpmn-engine specify participants via assignment handler?

Hi,
For user tasks, it is a common requirement to dynamically assign tasks to users in the business system. In addition to being defined by assignee variables in the process file, the process definition can often define an assignment handler to dynamically assign the people involved when encountering complex logic. Can lib-bpmn-engine specify participants via assignment handler?
Best wishes

Hi, For user tasks, it is a common requirement to dynamically assign tasks to users in the business system. In addition to being defined by assignee variables in the process file, the process definition can often define an assignment handler to dynamically assign the people involved when encountering complex logic. Can lib-bpmn-engine specify participants via assignment handler?
Best wishes

Yes, you can do that.
See https://nitram509.github.io/lib-bpmn-engine/implementation-task-handlers/


Transforms docs in README are old/incorrect

The API has changed for transforms a while ago, this is rather confusing.
The source code has embedded code samples which are closer to reality. The new API format is rather impractical, here is a code snippet for a transform that takes a value of "format abcde" and turns it into {:format, "abcde"}, useful for myapp.some_crypto_key = base64 YTM0NZomIzI2OTsmIzM0NTueYQ==
  transforms: [
    "myapp.some_crypto_key": fn confpid ->
        # discard the wrappers, get at the value
        [{_,val}] = Conform.Conf.get(confpid, "myapp.some_crypto_key")
        #IO.puts "encry #{inspect val}"
        [k, v] = String.split(to_string(val))
        k = String.to_atom(k)
        {k, v}
      end
    ],

@martin-langhoff I'll make sure the docs get updated! You mentioned that the new API format is impractical, could you clarify your concerns? Your specific example is not much longer than alternatives I can think of, but has the benefit of scaling to some very complex configuration requirements. Is there a specific issue you would like to see addressed?

Don't worry about my "impractical" complaint, I was wrapping my mind around the new API. Apologies.
The important part is to get a current example to the README :-) (alternatively, remove the wrong example and point people to unit tests and source instead...).

Thanks for this @martin-langhoff! I was just struggling with trying to get transforms to work and even copied the schema from the README entirely into my app to see if I was missing some critical piece. Your example is great 🎉

Sorry about that, I somehow completely missed updating the README when I released 2.0, nothing worse than bad docs :(

No worries! I'll try and take a pass at updating the README. It'll also help me learn the ins and outs of conform. 😄

@bitwalker I've got the myapp.another_val transform example working. But I'm having a hard time figuring out how to make the lager settings work. It looks like Conform.Conf.get needs to pull the actual setting that the variable is going to and not its friendly id. If that's the case I don't quite understand how to translate the previous example for 2.0. I don't see how the transform can add new keys to the effective configuration.
Let me know if I'm missing something, but I think I'll need to rework the schema a bit in order to support that example.
Also in the README now there's some nice extra documentation for myapp.another_val: how is that generated? My generated conf file only has the doc line the allowed values from the enum.

I've gone through and updated the README, and added tests which cover the examples.


Optimization idea for subsetArray

https://github.com/haskell-unordered-containers/unordered-containers/blob/352591a4cc171d71c828f659288fb6e3440c28a7/Data/HashMap/Internal.hs#L2197-L2202
Once we've identified an element of ary2 to correspond to an element of ary1, it would be nice if we wouldn't check the same element again against the subsequent elements of ary1.
@treeowl had a neat idea for that in https://github.com/haskell-unordered-containers/unordered-containers/pull/282#discussion_r456021554:

I wouldn't record indices. But we could thaw one of the arrays and play mutation games. Say we have
1 2 3 4

and we search for 3. Then we can mutate the array to
undefined 2 1 4

That is, swap the 3 to the front and replace it with undefined. Then start the next scan in the second slot.

We would not even need to write undefined into the first slot. We only need to overwrite 3 with 1 and leave the first slot unchanged:
1 2 1 4

Before we optimize this function, we should really setup a benchmark first to see if we are making progress.

We would not even need to write undefined into the first slot.

I think the undefined would mostly help us debug the skipping of the first elements. Once it's correct we could probably remove it.
Or would it also help with GC!? :thinking:

I don't think the elements of the array can be garbage collected, since the hashmaps in which they are included are still reachable. It would be weird if a "subset" function would garbage collect something.

Yes, but it may be useful for debugging.

#406 has implemented a version of this idea for intersection[With[Key]]:
https://github.com/haskell-unordered-containers/unordered-containers/blob/d24cc1f48cef1c7f6bc041e7e73ee40a1fc7b731/Data/HashMap/Internal.hs#L1870-L1915


[quotamanagement] Handle case where tree has duplicate node names

Currently when you have two nodes in a QuotaSubtree with the same name, such as:
tree.yaml
apiVersion: ibm.com/v1
kind: QuotaSubtree
metadata:
  name: context-root
  namespace: kube-system
  labels:
    tree: quota_context
spec:
  children:
    - name: context-root
      quotas:
        hardLimit: true
        requests:
          cpu: 2000
          memory: 8000Mi
---
apiVersion: ibm.com/v1
kind: QuotaSubtree
metadata:
  name: context-root-children
  namespace: kube-system
  labels:
    tree: quota_context
spec:
  parent: context-root
  children:
    - name: alpha
      quotas:
        hardLimit: true
        requests:
          cpu: 100
          memory: 4000Mi
    - name: beta
      quotas:
        hardLimit: true
        requests:
          cpu: 100
          memory: 4000Mi

node-dupes.yaml
apiVersion: ibm.com/v1
kind: QuotaSubtree
metadata:
  name: context-root-children-dupes
  namespace: kube-system
  labels:
    tree: quota_context
spec:
  parent: context-root
  children:
    - name: alpha
      quotas:
        hardLimit: true
        requests:
          cpu: 1000
          memory: 4000Mi
    - name: beta
      quotas:
        hardLimit: true
        requests:
          cpu: 1000
          memory: 4000Mi

they act as though both quotas are applied within an AppWrapper effectively making it the strictest subset of the two. This behavior should either be accepted and documented clearly , or the qst should be rejected and be given a clear condition as to why.

@metalcycling  Can you please comment here based on your experience with quota management?


Update habitus_install.sh

Sets install script version number to the latest release of habitus.

Thank you!


Conversion of setup to text files

Definition of wind farm, turbines, control, wake parameters etc. is now possible in tab-delimited text files.

Wind farms can consist of turbines with variable type and hub height, as set up in the text table. Hub height has been removed from the turbine type properties, as it is no such (one turbine type, i.e. rotor diameter, rated power, control characteristics etc. is usually offered by manufacturers with different tower heights).
Greedy control LuTs can be multi-dimensional (dimension 1 are rows, dimension 2 colums, dimension 3 is separated with with a ";" row, dimension 4 with ";;" etc.)
Therefore, the interfaces to read the text files have been directly integrated in the class constructors, i.e. the object properties are directly defined from the text file contents. The class constructors are then called directly without additional functions to create the objects (see 'DemoSimulation.m'). A new folder 'setupDefinitions' has been created to cummulate the changed/new classdef/function/settings files.
Now to define a new setup, according distinct text files have to be changed/created in setupDefinitions; there cannot be multiple parallel setups in this folder.

Note that currently the text-defined LuTs can only be used in the greedy control strategy, the project maintainers might have good ideas how the generalize the concept text input for other control strategies.

Can one of the admins verify this patch?


v0.25.3 - Fix entity update for nullable primitives

Bug fix for this: https://github.com/graphprotocol/graph-cli/pull/791#issuecomment-990742085
This PR finally adds tests for the schema code generation, so we can have better confidence when manipulating that part of the code.

This seems related to the issue I'm having https://github.com/graphprotocol/graph-cli/pull/807.
Anything I can do to help test this?


ProxySsn renaming member vars

Renaming protected variables of ProxySession to be more accurate and use naming conventions.

proxy_ssn => _proxy_ssn
current_reader => _sm
sm_reader => _reader

Ready for merge @shinrich

@a-canary This has merge conflicts.

Cherry-picked to v9.0.x branch.


[maestro] setup direct subscription for dotnet/runtime

Context: https://github.com/dotnet/android/commit/b5e7598e50f22a63b6e540c0c16559e86a70c119
Changes: https://github.com/dotnet/runtime/compare/46cfb747...200d05e4
.NET 9 RC 2 will include security fixes, so the very latest builds will be internal. As a way for us to test the newest possible public builds, we can update dotnet/runtime ahead of dotnet/sdk.
Following the instructions at b5e7598e, I ran the following command for the latest build on the release/9.0-rc2 branch:
> darc get-build --repo dotnet/runtime --commit 200d05e41fc2212ff8c98ed79ebe9043bfed58aa
Repository:    https://github.com/dotnet/runtime
Branch:        release/9.0-rc2
Commit:        200d05e41fc2212ff8c98ed79ebe9043bfed58aa
Build Number:  20240923.4
Date Produced: 9/23/2024 8:50 PM
Build Link:    https://dev.azure.com/dnceng/internal/_build/results?buildId=2545106
AzDO Build Id: 2545106
BAR Build Id:  239703
Released:      False
Channels:
- .NET 9 RC 2

Then using BAR Build Id:
> darc update-dependencies --id 239703
Looking up build with BAR id 239703
Updating 'Microsoft.NET.ILLink.Tasks': '9.0.0-rc.2.24463.7' => '9.0.0-rc.2.24473.4' (from build '20240923.4' of 'https://github.com/dotnet/runtime')
Updating 'Microsoft.NETCore.App.Ref': '9.0.0-rc.2.24463.7' => '9.0.0-rc.2.24473.4' (from build '20240923.4' of 'https://github.com/dotnet/runtime')
Checking for coherency updates...
Local dependencies updated based on build with BAR id 239703 (20240923.4 from<EMAIL_ADDRESS>
After this is merged, we can add a new daily subscription, such as:
> darc add-subscription --channel ".NET 9 RC 2" --target-branch "release/9.0.1xx-rc2" --source-repo https://github.com/dotnet/runtime --target-repo https://github.com/dotnet/android

/cc @rolfbjarne you probably want to do the same thing for xamarin/xamarin-macios


Support for data tables

e.g.
Given what ever:
|      |       lat |         lon |
| KMSY | 29.993333 |  -90.258056 |
| KSFO | 37.618889 | -122.375000 |
| KSEA | 47.448889 | -122.309444 |
| KJFK | 40.639722 |  -73.778889 |
The data table should be passed to the step definition as the last argument. Currently it is undefined.

Hi @jakoivis,
The current implementation is different. If you want to get the value of the variables, you will have to but them into the step that you are targeting:
Feature: Awesome feature
  Scenario Outline: Flying to an airport
    Given <airpoirt> is at (<lat>,<lon>)
    When I fly to the airport <airport>
    Then I'm at (<lat>, <log>)

    Examples:
      | airport | lat       | lon         |
      | KMSY    | 29.993333 |  -90.258056 |
      | KSFO    | 37.618889 | -122.375000 |
      | KSEA    | 47.448889 | -122.309444 |
      | KJFK    | 40.639722 |  -73.778889 |

The package will internally create 4 tests (one for each example) as if you created them manually.
The above example will interally be represented as something like this:
Feature: Awesome feature
  Scenario: Flying to an airport
    Given KMSY is at (29.993333,-90.258056)
    When I fly to the airport KMSY
    Then I'm at (29.993333,-90.258056)

  Scenario: Flying to an airport
    Given KSFO is at (37.618889,-122.375000)
    When I fly to the airport KSFO
    Then I'm at (37.618889,-122.375000)

# ...

Note that all the tests have the same name. If you do not want to have this, you can use the variables in the scenario's name aswell.
Then you can access it like you would if you created them manually:
const { Given, When, Then } = require('cucumber');

Given(/^([A-Z]+) is at \((-?\d*.\d+),(-?\d*.\d+)\)$/, async (t, airportCode, latitude, longitude) => {
  // stuff
});

When(/^I fly to the airport ([A-Z]+)$/, async (t, airportCode) => {
  // more stuff
});

Then(/^I'm at \((-?\d*.\d+),(-?\d*.\d+)\)$/, async (t, latitude, longitude) => {
  // even more stuff
});

I think we should definitely add an example for this.

That's good the hear that the scenario outline is working and it could be documented as well. But that isn't quite what I needed. I tested to create only a data table since I understood that the use cases for scenario outline and data table are different. I checked from the source code that the gherkin Compiler creates pretty much this information already but it only needs to be passed for the test case.

Oh, I wasn't even aware that something like this existed.
Then you are right. This is a feature that might get added in the future.
Just for the record, the cucumber documentation for data tables.

I would love to see this implemented :)

How you getting on @jvdieten?

Fixed in version 2.2.0


[rt.openssl.org #4580] "openssl verify -CAfile cacerts.pem cert.pem" fails if cacerts.pem is ordered in certain ways

Migrated from rt.openssl.org#4580 (status was 'open')
Requestors:

<EMAIL_ADDRESS>
Attachments:

new.pem
old.pem
curr.pem
hgcentral1.pem

From<EMAIL_ADDRESS>on 2016-06-21 01:38:21:
Dear OpenSSL developers,

We recently experienced an issue with our internal Mercurial repositories where Mercurial will refuse to connect to the repository due to an SSL certificate error.
The problem appeared to show up randomly on some machines, but not others.

The repository is hosted on an SCM-Manager instance and served over https with a certificate signed by our internal root CA, which is in turn deployed to the
machines on our network using Active Directory group policies.

Recently, our IT department has pushed out a new root CA certificate through Active Directory. This CA is a renewal of the old one, with the validity time extended through 2021, and the signature algorithm changed to SHA256+RSA (was SHA1+RSA before), this was when the problem started happening. The old root CA was not revoked or uninstalled.

I tracked down the issue to a problem with OpenSSL, which Mercurial uses for SSL support.
Specifically, if OpenSSL is asked to verify an SSL certificate using a CA certificate store containing both a valid CA certificate and an expired one, both correct CA certs for the SSL one, it will _sometimes_ reject the certificate with the following error message:
secondary.pem: CN = testing
error 10 at 1 depth lookup:certificate has expired

The behavior is dependent on the physical ordering of the CA certificates in the store. Specifically, if the only certificates in the store are the valid and expired CAs, then the error occurs only if the valid one comes first. With more than two certificates in the store, the behavior appears to be completely random (but shows up consistently for the same orderings).
E.g. with two valid CAs and an expired one, all 3 signing the same SSL cert, the following orders work:

older valid CA, expired CA, newer valid CA
older valid CA, newer valid CA, expired CA
newer valid CA, expired CA, older valid CA

but these fail with "certificate has expired":
expired CA, older valid CA, newer valid CA (logical ordering, this is the order in which Windows returns certificates deployed using AD)
expired CA, newer valid CA, older valid CA
newer valid CA, older valid CA, expired CA

As a simple testcase, I created the following 3 PEM files:
goodcacerts.pem:
-----BEGIN CERTIFICATE-----
MIIEwzCCAqugAwIBAgIEAwvYVTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwd0
ZXN0aW5nMB4XDTA3MDcwNzA1MDcwN1oXDTA4MDcwNjA1MDcwN1owEjEQMA4GA1UE
AxMHdGVzdGluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIHAVog+
GiK2M/QqsnCDTH4U9C2Bp47CEGNvHBWLVJh2ikfnpydmQUgo2JPeAn7UldRZKtS0
ORQt9mSvFdL9llxfbQVn4XnJM3GzKewQjrvBvBm0c9v99k37F0F0rlDrm1wWzs8C
Jzw2xiBSeznpLWCWtOKvWy7P9kGNlN32xNNw7P9hSfMjwXeXICCWlj0nD1rngoyp
jvrrobXGpZ+5gUUBg40AspLlN0bsaMjBSBmpFIZs7g9iPmVP4ANlzkPOwjLfXlk3
1CFef8F48NrlprjAzRAvSSgpixDCeYu/yjK+1IKCo1g9bYTVv41RlCs9f2Q6JjQ8
t/CtHkFnin6wKgnEQwpkwPd8DIRpgKzcYQkFym2kPolP1BPE6vvuLEwb2k1sokjQ
U35HEL9UvLzhEPlIPqtzaOcV3eQb08GpLv8CihHHubtWXV4DIrkBHwLDwC9inM/l
NSc3JefFy8I6BWxxzmXu8Wcvn9EsheJKswnJB+/0IgBuXT5RFdpBNCFRI/mdb33N
bIpS27J7CZW3sbXT2UVMuYTU7862nymd0m/bY8PQHypqep0xCCzEd35qC4jaY+RA
DJZQGRbEXfOkRGkxxzvES8m87pThT5SIJzutuiiufmbtlqdZWv+a3v/L+rpjIBet
cRF2Sb44aTmc9RvAJ802s7XxlrYuyqy4D/MzAgMBAAGjITAfMB0GA1UdDgQWBBSY
/19/f9b2cU+d4GT8hVS7LWD+ejANBgkqhkiG9w0BAQsFAAOCAgEAV+PnySD6Nkct
SsohAvra8Xuski5ZwHfymAICRM9ZWD6s/2/7y652vegMw40wxW3ZeT7NTzoi+MiT
LgYsbdu7upRGvS6dnB7ye8udOtIPhk/QPqDgH0SkxB2imeUaprX8EJUYFQX0AUd7
MAqMcqVFrpYo7xjXCxsWpWPzT6USsG9gjcSbWoukxIGmhlNvtKycSY3+L0HFZKyr
mMHZxYsUxVyPKBwfhwQTC/RQccCNLRdW68eaJSjxrbFjkMCLtppGqKHfRr/KBMvf
7K5q52vZ2O324yVdQdQjPuLk84pyJmyZ8Ew48XK06ebHgbx+fBDsNYq27IU4GRm+
FMl/Rp0q/fxZ3CphBNBdyDRRIGzIJN4e3ocSeNDcQt6uD7h88D0FrCXrlkxYGW51
qvaxFmUXlAjuv0K2iRDzvVbP2A6JhB2PBUw/lkEDcy2WP0WctLdL/GVeatRTUlzw
jxQRSi21Azwq9I4fqG/cwDDiWPGmyP2/xJoZROhky0zm/0A9mWEU9R7tB+FppZZN
3Un9HtSIRt30mqC1AgcIdiFlXpS5RiJElgIEuJVma3P2BxFK2glycy12UYy9gcOw
VV9D2OrLNxKp9icmy/D2b9Z2udLji9jI0MIhl/xDlshsTtkDmOshgqnKIyNzF/gF
8fgqQZm0AezWcLtrnbFTSG2f6Rpdjec=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIExTCCAq2gAwIBAgIEKKekeTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwd0
ZXN0aW5nMCAXDTA3MTIzMTIzMDAwMFoYDzIwOTcwOTE2MjMwMDAwWjASMRAwDgYD
VQQDEwd0ZXN0aW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgcBW
iD4aIrYz9CqycINMfhT0LYGnjsIQY28cFYtUmHaKR+enJ2ZBSCjYk94CftSV1Fkq
1LQ5FC32ZK8V0v2WXF9tBWfheckzcbMp7BCOu8G8GbRz2/32TfsXQXSuUOubXBbO
zwInPDbGIFJ7OektYJa04q9bLs/2QY2U3fbE03Ds/2FJ8yPBd5cgIJaWPScPWueC
jKmO+uuhtcaln7mBRQGDjQCykuU3RuxoyMFIGakUhmzuD2I+ZU/gA2XOQ87CMt9e
WTfUIV5/wXjw2uWmuMDNEC9JKCmLEMJ5i7/KMr7UgoKjWD1thNW/jVGUKz1/ZDom
NDy38K0eQWeKfrAqCcRDCmTA93wMhGmArNxhCQXKbaQ+iU/UE8Tq++4sTBvaTWyi
SNBTfkcQv1S8vOEQ+Ug+q3No5xXd5BvTwaku/wKKEce5u1ZdXgMiuQEfAsPAL2Kc
z+U1Jzcl58XLwjoFbHHOZe7xZy+f0SyF4kqzCckH7/QiAG5dPlEV2kE0IVEj+Z1v
fc1silLbsnsJlbextdPZRUy5hNTvzrafKZ3Sb9tjw9AfKmp6nTEILMR3fmoLiNpj
5EAMllAZFsRd86REaTHHO8RLybzulOFPlIgnO626KK5+Zu2Wp1la/5re/8v6umMg
F61xEXZJvjhpOZz1G8AnzTaztfGWti7KrLgP8zMCAwEAAaMhMB8wHQYDVR0OBBYE
FJj/X39/1vZxT53gZPyFVLstYP56MA0GCSqGSIb3DQEBCwUAA4ICAQBP1bWTxa0L
UkBHMMBvnRkof+qE7hms/mJslKFVoYxD+fRoBKU2vPPCqYqbENwMGZtHxBQ2CZFU
y4gUJQClrzqT1Pk5IcSVkAwe4RFQ7+IalITvyF0QRQZ1qaLvo893lBdQH2RfLyZG
hFl6z+dPjWBvh8w9Oo/LpzyV1LEYd25LtPL3ZJsH5Xbh1RP2oESVkd/qacxat3kn
ljmpxsuj4xJz1/VOin8xRJN97bz9kUO76Fs9ICCHSPunaVoYucCzuOG8JYPaIuUG
9I8ymNPDjcI48Gf+mxS4cs89NuSYGJ2CLB2/Knx2ViebcKnx79x62QmYco8vF5iK
G08yGJ4E4J+ERj5j7EfnUfKFDUSowzt97l7cJ1hDOx8qoeWSbaQdC2PlF5NnBZLW
mkCmMttlCs75V15Bw662AB1vGzEzKn79dTv2XsLOf7105Oq+0wgPH+iKXRYLYnDR
s+uGTY5pCU5K37Uv4T7m761JDqkipMobhWSDjzaTI4LE8qmJGWb3jwmW4nZBZmrT
FddmZyOMIQUpkLcNHea2ESdbFdo2JsUnfMGtY3XxAoeIW6+JYSBwlfjkpECM9gPH
4L27x01NmQL5yVxNHjN0EjittE/HHMXgntIRTYktjN5V8eZla85vwR72PSafUtpr
x51x19J+pGfSpXRPO48tGi8+YUckS7qN4w==
-----END CERTIFICATE-----

badcacerts.pem:
-----BEGIN CERTIFICATE-----
MIIExTCCAq2gAwIBAgIEKKekeTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwd0
ZXN0aW5nMCAXDTA3MTIzMTIzMDAwMFoYDzIwOTcwOTE2MjMwMDAwWjASMRAwDgYD
VQQDEwd0ZXN0aW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgcBW
iD4aIrYz9CqycINMfhT0LYGnjsIQY28cFYtUmHaKR+enJ2ZBSCjYk94CftSV1Fkq
1LQ5FC32ZK8V0v2WXF9tBWfheckzcbMp7BCOu8G8GbRz2/32TfsXQXSuUOubXBbO
zwInPDbGIFJ7OektYJa04q9bLs/2QY2U3fbE03Ds/2FJ8yPBd5cgIJaWPScPWueC
jKmO+uuhtcaln7mBRQGDjQCykuU3RuxoyMFIGakUhmzuD2I+ZU/gA2XOQ87CMt9e
WTfUIV5/wXjw2uWmuMDNEC9JKCmLEMJ5i7/KMr7UgoKjWD1thNW/jVGUKz1/ZDom
NDy38K0eQWeKfrAqCcRDCmTA93wMhGmArNxhCQXKbaQ+iU/UE8Tq++4sTBvaTWyi
SNBTfkcQv1S8vOEQ+Ug+q3No5xXd5BvTwaku/wKKEce5u1ZdXgMiuQEfAsPAL2Kc
z+U1Jzcl58XLwjoFbHHOZe7xZy+f0SyF4kqzCckH7/QiAG5dPlEV2kE0IVEj+Z1v
fc1silLbsnsJlbextdPZRUy5hNTvzrafKZ3Sb9tjw9AfKmp6nTEILMR3fmoLiNpj
5EAMllAZFsRd86REaTHHO8RLybzulOFPlIgnO626KK5+Zu2Wp1la/5re/8v6umMg
F61xEXZJvjhpOZz1G8AnzTaztfGWti7KrLgP8zMCAwEAAaMhMB8wHQYDVR0OBBYE
FJj/X39/1vZxT53gZPyFVLstYP56MA0GCSqGSIb3DQEBCwUAA4ICAQBP1bWTxa0L
UkBHMMBvnRkof+qE7hms/mJslKFVoYxD+fRoBKU2vPPCqYqbENwMGZtHxBQ2CZFU
y4gUJQClrzqT1Pk5IcSVkAwe4RFQ7+IalITvyF0QRQZ1qaLvo893lBdQH2RfLyZG
hFl6z+dPjWBvh8w9Oo/LpzyV1LEYd25LtPL3ZJsH5Xbh1RP2oESVkd/qacxat3kn
ljmpxsuj4xJz1/VOin8xRJN97bz9kUO76Fs9ICCHSPunaVoYucCzuOG8JYPaIuUG
9I8ymNPDjcI48Gf+mxS4cs89NuSYGJ2CLB2/Knx2ViebcKnx79x62QmYco8vF5iK
G08yGJ4E4J+ERj5j7EfnUfKFDUSowzt97l7cJ1hDOx8qoeWSbaQdC2PlF5NnBZLW
mkCmMttlCs75V15Bw662AB1vGzEzKn79dTv2XsLOf7105Oq+0wgPH+iKXRYLYnDR
s+uGTY5pCU5K37Uv4T7m761JDqkipMobhWSDjzaTI4LE8qmJGWb3jwmW4nZBZmrT
FddmZyOMIQUpkLcNHea2ESdbFdo2JsUnfMGtY3XxAoeIW6+JYSBwlfjkpECM9gPH
4L27x01NmQL5yVxNHjN0EjittE/HHMXgntIRTYktjN5V8eZla85vwR72PSafUtpr
x51x19J+pGfSpXRPO48tGi8+YUckS7qN4w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEwzCCAqugAwIBAgIEAwvYVTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwd0
ZXN0aW5nMB4XDTA3MDcwNzA1MDcwN1oXDTA4MDcwNjA1MDcwN1owEjEQMA4GA1UE
AxMHdGVzdGluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIHAVog+
GiK2M/QqsnCDTH4U9C2Bp47CEGNvHBWLVJh2ikfnpydmQUgo2JPeAn7UldRZKtS0
ORQt9mSvFdL9llxfbQVn4XnJM3GzKewQjrvBvBm0c9v99k37F0F0rlDrm1wWzs8C
Jzw2xiBSeznpLWCWtOKvWy7P9kGNlN32xNNw7P9hSfMjwXeXICCWlj0nD1rngoyp
jvrrobXGpZ+5gUUBg40AspLlN0bsaMjBSBmpFIZs7g9iPmVP4ANlzkPOwjLfXlk3
1CFef8F48NrlprjAzRAvSSgpixDCeYu/yjK+1IKCo1g9bYTVv41RlCs9f2Q6JjQ8
t/CtHkFnin6wKgnEQwpkwPd8DIRpgKzcYQkFym2kPolP1BPE6vvuLEwb2k1sokjQ
U35HEL9UvLzhEPlIPqtzaOcV3eQb08GpLv8CihHHubtWXV4DIrkBHwLDwC9inM/l
NSc3JefFy8I6BWxxzmXu8Wcvn9EsheJKswnJB+/0IgBuXT5RFdpBNCFRI/mdb33N
bIpS27J7CZW3sbXT2UVMuYTU7862nymd0m/bY8PQHypqep0xCCzEd35qC4jaY+RA
DJZQGRbEXfOkRGkxxzvES8m87pThT5SIJzutuiiufmbtlqdZWv+a3v/L+rpjIBet
cRF2Sb44aTmc9RvAJ802s7XxlrYuyqy4D/MzAgMBAAGjITAfMB0GA1UdDgQWBBSY
/19/f9b2cU+d4GT8hVS7LWD+ejANBgkqhkiG9w0BAQsFAAOCAgEAV+PnySD6Nkct
SsohAvra8Xuski5ZwHfymAICRM9ZWD6s/2/7y652vegMw40wxW3ZeT7NTzoi+MiT
LgYsbdu7upRGvS6dnB7ye8udOtIPhk/QPqDgH0SkxB2imeUaprX8EJUYFQX0AUd7
MAqMcqVFrpYo7xjXCxsWpWPzT6USsG9gjcSbWoukxIGmhlNvtKycSY3+L0HFZKyr
mMHZxYsUxVyPKBwfhwQTC/RQccCNLRdW68eaJSjxrbFjkMCLtppGqKHfRr/KBMvf
7K5q52vZ2O324yVdQdQjPuLk84pyJmyZ8Ew48XK06ebHgbx+fBDsNYq27IU4GRm+
FMl/Rp0q/fxZ3CphBNBdyDRRIGzIJN4e3ocSeNDcQt6uD7h88D0FrCXrlkxYGW51
qvaxFmUXlAjuv0K2iRDzvVbP2A6JhB2PBUw/lkEDcy2WP0WctLdL/GVeatRTUlzw
jxQRSi21Azwq9I4fqG/cwDDiWPGmyP2/xJoZROhky0zm/0A9mWEU9R7tB+FppZZN
3Un9HtSIRt30mqC1AgcIdiFlXpS5RiJElgIEuJVma3P2BxFK2glycy12UYy9gcOw
VV9D2OrLNxKp9icmy/D2b9Z2udLji9jI0MIhl/xDlshsTtkDmOshgqnKIyNzF/gF
8fgqQZm0AezWcLtrnbFTSG2f6Rpdjec=
-----END CERTIFICATE-----

site.pem:
-----BEGIN CERTIFICATE-----
MIIE5TCCAs2gAwIBAgIEBxm5gTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwd0
ZXN0aW5nMB4XDTE2MDYyMDIwMDU1NVoXDTM4MTEyNDIwMDU1NVowEzERMA8GA1UE
AxMIdGVzdGluZzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCfeSXR
qF0VCSZ3cT6bnEP4BkVqnM09RI+Ycn/Oh5A/FGDqHc2T2OcdvkTU4KnuwPqShW5x
gvNGSeHDBHyYcHzrcu/unyVgt8u/247g4egq/Ep8edNkSkdws5N9JTxwm74H31af
ndSRYeyC2m2pwZx1sVd0gOK1NodlpP/hcm7NPrcAE6HFzkemzJrsCgxQFhWsRvba
GlEA40ZhOjGvSKfAb2oCfpW5pFYx7kSI1ii/VfX8H7CU7ZJUmj7stuc0pXZvu11v
FsssenVX7XBxBwrDDoJdjCeEz1zfl68P7QhuCLS541SgHg/ZQPSTyMsQlzhR05Z1
qaiP6oUFQSFvO7j3e6UbIgSxyXK1tRevbhwGLPBzfUgUzeKiRrMAkIDj1dC9NjK2
DAKO5VuvvQKhCLD21a5XhFMDjV1Ig2TUMMT1n55f4I6EXadcBXcBRPszZNzEgVRd
lsNGmsESCQ60bdRAnzxbbuP3A7Ufi0ASljzu3wwNGlOoEGDR3aOl341GO5x7z/gB
sMAaN0LqZnb3ACjKW6NE1jsYPWtW37y6xjnTliWA7wmcUoOZwYgwTOGuF+3lmyto
vJT2XVnli3wWUT2TPh9t4MgGzYePYiinpem3S9Ylsw7JNR0r4EDqyLF+8r4+Wg2V
AhpOKkzcOfRaxXjxWNiJ8CqLpb6E8P7p2cb1QwIDAQABo0IwQDAfBgNVHSMEGDAW
gBSY/19/f9b2cU+d4GT8hVS7LWD+ejAdBgNVHQ4EFgQU/+XByYexoutQKmN8aKwm
9ihiokYwDQYJKoZIhvcNAQELBQADggIBADX9+ihl9fGZelPZ426NYBWHvhr2LjB2
gVVPQpGG53AD5HOSRD1Lf0atfOXWnM0DXqN15cEp4jhB5ui16Vp8dYbU+7TSMpjX
W3emVBk09oHgYA23W8OSdi93rx5JARGKY36aY1Si79MnJ40mR3LlZqnx54IOujX0
k8kLEkZ+MzbZnxxYfupr8wqihAgpNFJCTuW7QT9tlHATdlUN1zsdh9RtPal4Wngi
dKk/L02VvvCLLfs37HCf8X/D89YDCH6XvXYok2TdhOe0VIiaa1JB0e0G/4rraPqw
e80FRr+5tEJFRMgG0QYgZo61l73UMNNB0MQ6xKN0UR6K9W05B7ILwAMiRyZFCJ9f
E+voJix+IWNtb495XfQGKpc/ALK+ifCdo1s6gIdE3RtEMZAwkdDjut/wtjaDfH78
8HUYJwAyrfQERrX5InF6pC9i5GasUcFnrq3zgq2jjddNMCQVbPZYxiabXq0qwDho
Mevk5tkPunZEfE3Npbb85vxPnn7z1uE3C6CDr0ZIRC2frlD6ShFqw6FhFQYnNvXd
Phs8fKQEwPN/PSb46rY/iLbASMNvh14Ut971Ta4ZKW/JHemfeRPUzqCECbE0jiKq
k5KEX5Ge7lLQ6i1q6jEPizR9z/HPbkkSNEIJN+UaTXW78i+0WGP8cLQIzGZFRNZB
uxRMPjdZ/XpR
-----END CERTIFICATE-----

goodcacerts.pem and badcacerts.pem contain exactly the same certificates (only ordered differently), yet:

C:\Users\gstefanik\Documents\buggycerts>openssl verify -CAfile goodcacerts.pem site.pem
site.pem: OK

C:\Users\gstefanik\Documents\buggycerts>openssl verify -CAfile badcacerts.pem site.pem
site.pem: CN = testing
error 10 at 1 depth lookup:certificate has expired
OK

Even worse, some 32-bit Windows builds of openssl actually crash when verifying using badcacerts.pem (e.g. https://indy.fulgan.com/SSL/openssl-1.0.2h-i386-win32.zip)
Unfortunately I was not able to compile a 32-bit Windows build myself.

Sincerely,
GÃ¡bor Stefanik

--------------------------------------------------------------------------
This message, including its attachments, is confidential. For more information please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.

From<EMAIL_ADDRESS>on 2016-06-21 13:24:04:
Having a mix of experied and unexpired certificates in the trust store for the same issuer/key seems to be undefined.  I am not sure this is a bug.

From<EMAIL_ADDRESS>on 2016-06-21 13:37:35:
Hi,

It seems that having the same key isn't actually a prerequisite, I actually have a pair of certificates in hand with the same issuer but different keys that reproduce this order-dependent behavior. (I'm currently in talks with our IT department for clearance to submit these certs as a testcase, since they are currently internal-use only.)

Also, we certainly shouldn't _crash_ even with duplicate keys. (Just checked, the nonidentical-key certificate pair above also reproduces the crash on win32.)

>

--------------------------------------------------------------------------
This message, including its attachments, is confidential. For more information please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.

-----Original Message-----
> From: Salz, Rich via RT<EMAIL_ADDRESS>> Sent: Tuesday, June 21, 2016 3:24 PM
> To: GÃ¡bor STEFANIK<EMAIL_ADDRESS>> Cc<EMAIL_ADDRESS>> Subject: RE: [openssl-dev] [openssl.org #4580] "openssl verify -CAfile
> cacerts.pem cert.pem" fails if cacerts.pem is ordered in certain ways
>
> Having a mix of experied and unexpired certificates in the trust store for the
> same issuer/key seems to be undefined.  I am not sure this is a bug.
>
> --
> Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4580
> Please log in as guest with password guest if prompted

From<EMAIL_ADDRESS>on 2016-06-21 13:38:40:
Yes, it should not crash.  But without more information it is hard/impossible to debug.

From<EMAIL_ADDRESS>on 2016-06-21 14:11:26:
Looks like I was wrong, the 2 internal certificates that reproduce the issue do in fact share the key (only a 3rd, even newer certificate has a different key). So, key reuse is an essential part of this problem - however, I can now reproduce it with a trust store containing no expired certificates.

Testcase coming soon, I got the OK from our IT department.

>

--------------------------------------------------------------------------
This message, including its attachments, is confidential. For more information please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.

-----Original Message-----
> From: Salz, Rich via RT<EMAIL_ADDRESS>> Sent: Tuesday, June 21, 2016 3:39 PM
> To: GÃ¡bor STEFANIK<EMAIL_ADDRESS>> Cc<EMAIL_ADDRESS>> Subject: RE: [openssl-dev] [openssl.org #4580] "openssl verify -CAfile
> cacerts.pem cert.pem" fails if cacerts.pem is ordered in certain ways
>
> Yes, it should not crash.  But without more information it is hard/impossible
> to debug.
>
>
> --
> Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4580
> Please log in as guest with password guest if prompted

From<EMAIL_ADDRESS>on 2016-06-22 15:11:09:
I've attached the certificates that we originally encountered the bug with.

"old.pem" is our old root CA certificate that expired in 2012.
"curr.pem" is our current root CA, with the same public key as "old.pem". It is valid till 2017.
"new.pem" is the new root CA recently released by our IT department. It has a new public key.
"hgcentral1.pem" is the site certificate signed directly using "curr.pem".

Verifying hgcentral.pem using curr.pem works, all others fail as expected.
However, when I concatenate old.pem, new.pem and curr.pem in various orders, I get inconsistent behavior:
old+curr PASS
curr+old FAIL
curr+new PASS
new+curr PASS
old+curr+new FAIL
old+new+curr FAIL
curr+old+new PASS
curr+new+old PASS
new+old+curr PASS
new+curr+old FAIL

There doesn't seem to be much of a pattern: curr+old fails, but curr+old+new works, even though new has a different public key and thus has no role in the verification. Also, old+curr+new and old+new+curr fail, despite "curr" following "old", which works when "new" isn't included.

I also have a variant where a trust store of 20 certificates, none of them expired, but some with identical keys, containing the correct CA, is rejected when loaded through Python in DER format using the "cadata" parameter, but not when loaded in PEM format using "cafile". I'm still trying to reproduce this using standalone openssl, without python.

>

--------------------------------------------------------------------------
This message, including its attachments, is confidential. For more information please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.

-----Original Message-----
> From: GÃ¡bor STEFANIK
> Sent: Tuesday, June 21, 2016 4:11 PM
> To<EMAIL_ADDRESS><EMAIL_ADDRESS>> Subject: RE: [openssl-dev] [openssl.org #4580] "openssl verify -CAfile
> cacerts.pem cert.pem" fails if cacerts.pem is ordered in certain ways
>
> Looks like I was wrong, the 2 internal certificates that reproduce the issue do
> in fact share the key (only a 3rd, even newer certificate has a different key).
> So, key reuse is an essential part of this problem - however, I can now
> reproduce it with a trust store containing no expired certificates.
>
> Testcase coming soon, I got the OK from our IT department.
>
> > -----Original Message-----
> > From: Salz, Rich via RT<EMAIL_ADDRESS>> > Sent: Tuesday, June 21, 2016 3:39 PM
> > To: GÃ¡bor STEFANIK<EMAIL_ADDRESS>> > Cc<EMAIL_ADDRESS>> > Subject: RE: [openssl-dev] [openssl.org #4580] "openssl verify -CAfile
> > cacerts.pem cert.pem" fails if cacerts.pem is ordered in certain ways
> >
> > Yes, it should not crash.  But without more information it is
> > hard/impossible to debug.
> >
> >
> > --
> > Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4580
> > Please log in as guest with password guest if prompted

This is working as designed.  The first "matching" cert (issuername===subjectname) found is used.  Multiple certs from the file are not loaded.  Closing this.

This appears to be trigged as well on macOS Mojave - where the expired (Entrust 2048) root CA certificate is listed in the system keychain before the renewed (Entrust 2048) root CA certificate.
On macOS Catalina, both certificates exist, but the renewed one appears first - so the issue no longer is hit.
We have noticed this with OpenSSL 1.0.2 - but not with 1.1.1.  Is this an issue that was addressed during development of 1.1.1 (I can't find a corresponding fix)?

@vdukhovni largely rewrote the verification and chain-building logic as part of adding DANE support, which first landed in 1.1.0.  This included backtracking and finding alternatives when we encountered an expired or otherwise invalid CA cert during chain-building, which IIUC would address the issue you describe.  This happened over many commits so I'm not sure there's a quick way to find the specific one that is responsible for fixing this issue.

Thank you very much for verification of that, @kaduk!


Progress logging inside a test

When running UI tests with Mocha (e.g. with Selenium / Webdriver), tests can last a long time, especially with complex workflows being checked. In such cases, it'd be a tremendous help to output some kind of progress message ('Clicking on button', 'Form submitted', etc.) which could be rendered by more verbose reporters like spec. I probably could abuse pending tests for that, but it's very unclean.

old


Use PepperFlash in Electron application after 2020

I am using pepflashplayer.dll in my electron applications. I have checked by changing the date to 2021 and it is working fine. I just wanted to know if the app is bundled now will it keep running in 2021 or it will also stop to work? Also I'll be distributing the app so is there any license required for that? Or if there is any other way I can keep using it.

Hey @akshayb25, this issue tracker is solely regarding our website's issues. Please file Electron-releated issues on the main Electron repository.
(Also, to answer your question, I don't think dropping support after 2020 is based on your computer's local time. Any version of Chrome released in 2021 will probably drop support for Flash.)


Investigate nullability of GskTransform

Seems like a bunch of GskTransform methods returns a nullable but are not annotated as such...
cc @alatiera

Should happen before the release ideally as this will change the API.

i don't believe that will happen. At worst it can be pushed to a 0.5 release later on

I can take a look after I finished my tea. It's just 5 or so functions we're talking about here.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4378
They can actually return NULL and we'll have to handle all this a bit differently here by treating NULL not as None but as an identity transform.


Deletion of single frame polygon annotations

Ability to delete a polygon from a single frame of an annotation.  Right now the only option we have is to delete the the rect and the polygon by using the keyframe tool.  This seems a bit obscure.  May be better if we could delete the current polygon or the current rect/polygon when an item is selected through the new edit controls?

this was done in #302


DiffusionDet cannot be trained with the VOC dataset.

I made the following modifications to _base_ in config.py to expect to train on the VOC dataset:
_base_ = [
'mmdet::_base_/datasets/voc0712.py',
'mmdet::_base_/schedules/schedule_1x.py',
'mmdet::_base_/default_runtime.py'
]
However, the code reports the following error:
TypeError: class IterBasedTrainLoop in mmengine/runner/loops.py: class RepeatDataset in mmengine/dataset/dataset_wrapper.py: init() got an unexpected keyword argument 'filter_cfg'
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 2728403) of binary: /home/anaconda3/envs/mm3/bin/python
How should I fix it? thanks

try check the parameters fed to mmdet/datasets/builder:build_dataset. In your case, it seems to return a RepeatDataset class who doesn't have a parameter named filter_cfg in its __init__()


feat: added new design of color selection system

Description
A page with a new color selection design has been added. The color can also be selected from the keyboard using the keys r, g, b, o
Related Issue(s) #116
Closes #116
Checklist:

[x] Read the contributing docs (if this is your first contribution)

[x] Verified this is not a duplicate of any existing pull request

[x] Performed a self-review of the code

[x] Rebased to the last commit of the target branch (or merged it into my branch)

[x] Linked the issues which this PR resolves

[x] Documented the changes in code (API docs will be generated automatically)

@princeibs i'll fix that tonight

@princeibs I resolved conflicts


Permissionless command (override per-plugin)

Currently, command access is handled internally against the command name.
Proposing an override'able bool where this can be toggled off on a per-IRocketCommand basis.
So, for instance, a rules plugin doesn't require the 'rules' permission, the command is globally available.

#453


PLT-7989 - Updating code block line-height

PLT-7989 - Updating code block line-height
Ticket: https://mattermost.atlassian.net/browse/PLT-7989
Screenshot of how it looks locally.

LI, please verify carefully on docs site after merge

Will do ES


[SCHEDULE] New Reduction Mode for Tensorize

So far we are implementing reduction as

init(C)

for rx in reduce_range_x:
    for ry in reduce_range_y:
      update(C, reduce_value)

This may not be desirable, especially when there is no reset(init) intrinsic available. So alternatively, we can do
for rx in reduce_range_x:
    for ry in reduce_range_y:
      if likely(rx == 0) and likely(ry == 0):
         compute(C, reduce_value)
      else:
         update(C, reduce_value)

The subsequent loop split process will peel the loop to remove the likely condition when possible.

cc @derisavi-huawei @merrymercy let me know if it makes sense to you and see if any of you are interested in this

I'm not crystal clear on what the problem is. Is this about an alternative way for TVM to generate IR for reduce_axis, or is it about what kind of patterns (init/update vs compute/update) tensorize can match, or both, or something else?  That was a lot of ORs :-) Can you please elaborate?
Also, I don't clearly see the pros and cons of the design decisions involved here. Could you give us initial ideas so we can brainstorm?
In terms of interest, it's not something that will be on our radar in the next month or so. If we grow an interest in it, I'll definitely let you know.
Sorry! You were expecting answers and you received many questions instead :-)

It is related to https://github.com/dmlc/tvm/issues/512 on comment in terms of the alternative way of generating reduction, and is useful when init intrinsic is not available due too limitation of hardware

I can try this but may not too soon.

Second form makes life easier for us, so we are interested. Unfortunately we can't invest time in this in the short term.

Hi,
Let me know if this is off-topic..
I was wondering if  the reduction initialization could be scheduled separately much in the same way as the tvm.scan init and update operations. Currently I want to move the zero initialization for the output tensor in convolution to a separate loop nest(at the outermost level) but I can't seem to find a way to do it easily.

@tqchen , I have a solution in my local now, as we discussed, firstly set the reset part as "None" in intrinsic definition, then transform the update part in tensorize.cc. I will send to u for review after some tests.

@tqchen , I created a pull request, can u help to review it?

https://github.com/dmlc/tvm/pull/727

close this, thanks to @kun-zh


Date Box

The Date box in the header looks like it's a button and it's confusing ppl. We need to reformat it and take off the cursor:hover.

has already been resolved


Rootfs already mounted

Describe the bug
A clear and concise description of what the bug is and what you expected to happen.
To Reproduce
Steps to reproduce the behavior:

Go to 'just click on jailbreak'
Click on '....'
Scroll down to '....'
See error

Screenshots
If applicable, add screenshots to help explain your problem.

Device (please complete the following information):

iOS Version: 12.1
iOS Device: iPhone X
unc0ver Version: tried with b37,b38,b39,b40

Place an "x" between the brackets if true:

[ ] this is a bug others will be able to reproduce
[ ] this issue is present with all tweaks uninstalled(except for default packages) or disabled
[x] this issue is present after a rootfs restore
[x] this issue is present on the latest version of unc0ver

Logs
If applicable, add logs or error messages here.
Rootfs already mounted, already clear OTA update.
attached is the diagnostic from unc0ver
diagnostics.zip

@sbingner @pwn20wndstuff hope you can help me on this issue

settings -> General -> Reset ->Erase All Content and Settings. It will be OK

Reinstalling the current OS worked for me.

Looked at the logs and it looks like your RootfS is 12.1.4 which is not what it’s suppose to be. Since you’re not jailbroken yet. You can safely do a reset alll content and settings and this will not boot loop your devix

See #707 for solution.

grahamcracker123 Do you have Restore.ipsw file ios 12.1.2?
i

The IPSW is no longer signed.... unless you’re upgrading with blobs


fix: archive-type validation error

Description
The current archive value was causing a validation error in the cos-module
https://github.com/terraform-ibm-modules/terraform-ibm-cos/blob/cf8787b68bfa8e7f755a28c1d7ccc6effc49ac53/variables.tf#L233-L234
Replace this value with the allow listed value. Also change the descriptions so it is clearer what these values correspond to.
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
fix archive_type validation problems
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

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


Add portuguese (brazil and portugal) translations

Hmm, totally unrelated, but it seems like GitHub changed the way squash and merge works on pull requests. It used to keep authorship from the PR creator in the squashed commit, but in my last 2 merge, I'm the only author. I like to avoid the merge commits, but I might have to do that instead from now on. Not sure if it's a bug or a feature 🤔.

If that's true, you will be the only contributor from now on: https://github.com/area17/twill/commits?author=antonioribeiro. 😆
But I'm wondering why you are rebasing/squashing a PR with only one commit?
Shouldn't you just merge it?


gridViewScroll

Hi
How can i set the vertical and horizontal scroll bar to a specific position on a grid where i apply the gridviewscroll?
tkx in advance

I added some property and event can do this, please try lasted version.


Feedback and support

Tasks

[x] [Findable] "Feedback & Support" button
[x] [Findable] Feedback form
[x] [HCA DB] Feedback form

Completed.


this.node is undefined in componentWillUnmount() for shallow renderer

I have a test that basically does:
    it('should update when props change', () => {
        const wrapper = shallow(
            <MyComponent>woo</MyComponent>
        );

        return Promise.resolve()
        .then(() => wrapper.setProps({children: 'woo2'}))
        .then(() => promiseTools.delay(10))
        .then(() => {
            expect(wrapper.containsMatchingElement('woo2'), 'woo2').to.be.true;
            wrapper.unmount();
        });

    });

This fails because in my component, in componentWillUnmount(), this.node is undefined.  If I change this to use mount instead of shallow:
    it('should update when props change', () => {
        const wrapper = mount(
            <MyComponent>woo</MyComponent>
        );

        return Promise.resolve()
        .then(() => wrapper.setProps({children: 'woo2'}))
        .then(() => promiseTools.delay(10))
        .then(() => {
            expect(wrapper.getNode().innerHTML).to.include('woo2');
            wrapper.unmount();
        });

    });

Then it passes.

With shallow, after setProps, you have to explicitly wrapper.update().

Explicit call to update() didn't fix it.  I put a debugger on this; I notice that despite the documentation here, componentDidMount() is never being called for my component, even if I explicitly set disableLifecycleMethods to false.  I mean, this kind of makes sense to be honest, because I wouldn't expect componentDidMount() to run for a shallow render, and now that I think about it, maybe I shouldn't expect there to even be a this.node when I shallow render, since there's no DOM for the node to be a part of.  But, if componentDidMount() doesn't get called, why does componentWillUnmount()?

@jwalton
Currently, disableLifecycleMethods is a no-op, which will be enabled when all lifecycle methods are supported by default in v3. #789 #678
In v2, you can use lifecycleExperimental option instead of disableLifecycleMethods to false.

@jwalton are you still experiencing this issue with v3?

I haven't tried it.  Feel free to close this.
On Sep 26, 2017 08:45, "Jordan Harband"<EMAIL_ADDRESS>wrote:

@jwalton https://github.com/jwalton are you still experiencing this
issue with v3?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/enzyme/issues/865#issuecomment-332186223, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABsF-9oufygidhDMzfDDA6ARZMym_7tqks5smPHBgaJpZM4Mru0s
.

Happy to reopen if it's still an issue.


Explain SkyApplication in AndroidManifest.xml template and possibly rename it

Steps to Reproduce
It's got a strange package name for legacy reasons and developers might not know whether they are supposed to customize it.
We can update the package name and deprecate but keep the old one around for legacy purposes.

@Hixie

Collin's explanation:

SkyApplication is implemented here: https://github.com/flutter/engine/blob/master/shell/platform/android/org/domokit/sky/shell/SkyApplication.java
It's an android.app.Application that also calls FlutterMain.startInitialization(this); in the onCreate method.
In most cases you would want to leave this field as-is and use org.domokit.sky.shell.SkyApplication. The "package" attribute of the "manifest" tag is where you should name your application.
However, if you want to override other behavior of the Android application, you can subclass SkyApplication, or you can define your own class that subclasses android.app.Application and calls startInitialization


Wrong resolved symbol for inferred .apply

- obtained
+ expected

object a {
  Map(1 -> 1)

Occurrences:
- [1:2..1:5): Map => _root_.scala.Predef.Map().
+ [1:2..1:5): Map => _root_.scala.Predef.Map.
}

Wait, this is actually correct behavior, Map now references the val Map = .. getter. It's a bit unfortunate that val forwarders have a different syntax now 😞


Issue number 1

This is the first issue.

The first comment.

Third comment

Third comment 2

Fourth comment

Fitfth comment


Fix ListJobs test by first creating a job to list.

Run Format-code in the dlp directory to fix the lint issues.

Done.

Not sure what is broken about the tests now. There isn't a clear failure message. Looks like one test might have just timed out? How do you trigger a test re-run?

Failed test is video timing out again.


False password strength

Add * and ^ to the regex to fix :)

This is being fixed in the next release


Fix usage of Nuxt.Options/Nuxt.Utils

Apparently, the API usage introduced in https://github.com/sumcumo/nuxt-styleguide/commit/392dfdfb07587dc18d396f9a262b044a4938cb2d#diff-9fb54c666ef3230de38f8308486a0d6d is not valid anymore with the current nuxt-version (2.3.0-25694505.cf1aa1a) – I got an error on yarn start when using the project in the current state:
$ yarn start
yarn run v1.12.3
$ cd demo && yarn start $1
$ nuxt
Options undefined                                                                                11:05:38

 FATAL  [                                                                                11:05:38
  /Users/markussiering/Sites/nuxt-styleguide/packages/nuxt-styleguide-config/nuxtStyleguideConfig.js:1
  TypeError: Cannot read property 'from' of undefined
      at Object.<anonymous> (/Users/markussiering/Sites/nuxt-styleguide/packages/nuxt-styleguide-config/nuxtStyleguideConfig.js:59:26)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
]

   ╭─────────────────────────────────────────────────────────╮
   │                                                         │
   │   ✖ Nuxt Fatal Error                                    │
   │                                                         │
   │   TypeError: Cannot read property 'from' of undefined   │
   │                                                         │
   ╰─────────────────────────────────────────────────────────╯

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I did a console.log("Options", Options) which you might notice. And as you'll notice as well, Options is undefined.
I couldn't find a quick replacement for this.
Utils is undefined as well – doing a plain require('nuxt') offers this:
$ nuxt
NuxtImport:  {                                                                                11:17:50
  Module: [Function: ModuleContainer],
  Nuxt: [Function: Nuxt],
  Resolver: [Function: Resolver],
  Builder: [Function: Builder],
  Generator: [Function: Generator]
}
NuxtImport Utils:  undefined

I do not have deep knowledge of the Nuxt@2 API – maybe someone could help here?
Side note: I got this to work by reverting to the module.export = Object.assign(…) part that was changed in the commit (and removing the Options.defaults which of course is also undefined. Since Utils is undefined as well, I guess that's not a very thorough solution, though :D
Maybe @Xiphe or @escapedcat have an idea about what to do here?

Hm, according to the docs, both are available: https://nuxtjs.org/api/internals#utils & right below https://nuxtjs.org/api/internals#options 🤔
I'll check what's going wrong there.

Not sure about this. Nuxt API stability and documentation really is a pita. You probably have to check the nuxt.js source code and trust it more than the documentation.
On the other hand the maintainers are really open for contributions which then makes it quite easy to fix stuff :)

FYI: https://cmty.app/nuxt/nuxtjs.org/issues/c150


Add NanValueAnalyzer

We're currently processing your upload.  This comment will be updated when the results are available.


Upgrade to Storybook 7.X

Hello ! First of all, thank you for publishing this package.
I was wondering if you could upgrade the Storybook version to version 7.X ?
Upgrading would help us stay up-to-date and improve our development workflow
Thank you and have a great day

@nextrie feel free to open a PR, otherwise I will try to work on this as soon as I will have some time.

Done https://github.com/silversonicaxel/storybook-addon-versioning/pull/6


Delete spikes directory

Super Editor contains a number of spikes from early in the project. That code hasn't been used for anything in a long time, it's just getting in the way of code search.
Delete the spikes directory.

This is done.


update to rustc 1.0.0-dev (73a25f55a 2015-01-09 20:10:07 +0000)

Argh lost in the rebase when merging #56, but thanks regardless!


added expiration to cache

Commit 91bdfb4d6580b48485dc7ed6d680fda1514899ec does not seem to be taking on the site.
Perhaps updating the cache daily will help.
-Dave

I think it's just that the same link was broken in two different places, and 91bdfb4 only updated one of them. See #816.


Use nodeJS http module instead of electron.net

Currently, when running the example from Auth, the following error is throw: this.on is not a function. This seems to be an issue with got used with useElectronNet option.

The auth modules does not seem to work on electron in both the renderer process and the main process. It does however work in plain nodeJS.
Versions:
Electron: v6.0.9
NodeJS: v10.16.0
NpmJS: v6.11.3

I'll keep this issue open but merge your PR first to unblock you.
As in my electron env, the auth module works. Maybe the latest version contains some bad thing... I'll check it later

See issue: sindresorhus/got#443

Since useElectronNet has been deprecated in got, I am going to close this issue for now.


For Everyone: Indentation Issues

Python 3 doesn't allow mixing tabs with space.
So everyone configure your editor to have the following settings:

tab = 4 spaces
tabs are automatically converted to spaces

Commits without this shouldn't be accepted, because everyone has to spend hours fixing someone else's errors.

I'm fixing this issue as main.py isn't at pep8 standard

this is for all future commits.
I've already fixed main.py for pep8

It is still showing errors!  I think it has some errors

let #45 get merged. Then you can take a pull and check for errors.

how are you checking for pep8?

using pycodestyle

Hi, i have edited main.py in #45
can you please check if it's pep8
import sys
import pygame
from pygame.locals import QUIT, KEYUP
from src.misc.game_enums import Game_mode, Entity
from src.managers import *
from src.game_screens import *
from src.input_package import input_manager

def game_loop():
    pygame.init()

    # setup the window display
    size = (1024, 768)
    windowSurface = pygame.display.set_mode(size, 0, 32)
    pygame.display.set_caption('Coin Fall')

    # initialize resources and game mode
    res = Resources(pygame)
    game_clock = pygame.time.Clock()
    game_mode = Game_mode.MAIN_MENU
    game_manager = Game_manager()
    game_manager.set_input(input_manager.Input_Manager())

    # set game logo
    pygame.display.set_icon(res.logo)

    # initialize screens
    main_menu_screen = Main_menu_screen(pygame, res, windowSurface)
    game_screen = Game_screen(
        pygame, res, windowSurface, size, game_clock, game_manager)
    settings_screen = Settings_screen(pygame, res, windowSurface)
    game_over_screen = Game_over_screen(
        pygame, res, windowSurface, game_manager)
    tutorial_screen = Tutorial_screen(pygame, res, windowSurface)
    credits_screen = Credits_screen(pygame, res, windowSurface)
    game_mode_screen = Game_Mode_Screen(
        pygame, res, windowSurface, game_manager)

    # game loop starts
    while True:
        events = pygame.event.get()
        game_manager.input.update(events)

        if game_mode == Game_mode.MAIN_MENU:
            game_mode = main_menu_screen.update(events)

        elif game_mode == Game_mode.GAME:
            game_mode = game_screen.update(events)

        elif game_mode == Game_mode.SETTINGS:
            game_mode = settings_screen.update(events)

        elif game_mode == Game_mode.GAME_OVER:
            game_mode = game_over_screen.update(events)

        elif game_mode == Game_mode.TUTORIAL:
            game_mode = tutorial_screen.update(events)

        elif game_mode == Game_mode.CREDITS:
            game_mode = credits_screen.update(events)

        elif game_mode == Game_mode.GAME_MODE:
            game_mode = game_mode_screen.update(events)

        else:
            pygame.quit()
            sys.exit()

        game_clock.tick(60)

if __name__ == "__main__":
    game_loop()

yes it is alright So should i close my PR

yeah, go ahead.
I have made the whole project pep8 compliant, except for E501: line too long at some places
E501 is ignored by a lot of developers.
If you want to check, make a clone of this
https://github.com/amrit-choudhary/pygame-Coin-Fall-.git
and check the feature branch.

E501: line too long at some places It can also be solved. check code #46

I know, but sometimes, it can cause errors or make the code more unreadable. That's why some devs ignore it.

yeah ok! why there are so many PRs open.

only one guy has merge rights and he is busy

@imskr @amrit-choudhary I try my best to check PRs everyday, some are still under 'Changes requested', others I will review now. If something needs to be urgently checked, just message me stating the same.

@amrit-choudhary can I close this? As this could rather just be a general note to all contributors.

Yeah close it. Just make sure new contributors know about this issue somehow.


Feature request: Windows Explorer integration

Discussed in https://github.com/SpartanJ/ecode/discussions/134
Right click context menu for files and folders.

I started to feel tired of having to drag files into ecode to open them. I have to open a lot of files scattered throughout the file system. This doesn't suit the open as folder model of ecode well. Can you have a look at this feature? Thank you.

Besides that it would be useful to associate the file extensions from ecode, why don't you set ecode as default editor for those extensions? I do that once and forget about it.
https://github.com/user-attachments/assets/d9208823-1708-4b40-a742-54e18c7f8cb1

Is ecode a single-instance application? Or will it launch a new instance for each file opened via double click in Windows Explorer?

I don't want to associate file extensions with ecode. For example, I want to view this html file on ecode but don't want it to be the default application to open html files. I can still add ecode to the Open With list, but now another problem arises. Imagine you selected 10 html files and used right click, Open With -> ecode, and 10 instances of ecode are launching. Things will quickly become a mess.

There is no integration with the file manager on both Windows and Linux/BSD. I need to view various files scattered throughout the file system. The open as folder model of ecode doesn't suit this. Currently, I have to drag these files into ecode from the file manager to open them. I'm really tired with this.
p/s: I want to ensure that just one instance of ecode is running.

Yes, what you're looking for is issue #58 .


I have an idea for an art style.

Maybe we could do something like this?

It is a reddit post, but I still like the idea.