{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":96164983,"defaultBranch":"master","name":"tools","ownerLogin":"paulidale","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-07-04T01:57:02.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17916609?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1691549492.0","currentOid":""},"activityList":{"items":[{"before":"a59c1994bff88320bf5711b74ae2e6b7d25c6f5f","after":"105805528f6b4e5a5342aca21b8f65b7b3101e7a","ref":"refs/heads/master","pushedAt":"2024-09-09T19:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"update release metadata repo url\n\nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/216)","shortMessageHtmlLink":"update release metadata repo url"}},{"before":"85c598cef5b874d9c22dd581a92b59fb9c263490","after":"a59c1994bff88320bf5711b74ae2e6b7d25c6f5f","ref":"refs/heads/master","pushedAt":"2024-09-06T19:12:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add 3.4 release to review-tools\n\nReviewed-by: Richard Levitte \n(Merged from https://github.com/openssl/tools/pull/215)","shortMessageHtmlLink":"Add 3.4 release to review-tools"}},{"before":"601b00f9c674a7b81f0dfc34ea758a4107c20b31","after":"85c598cef5b874d9c22dd581a92b59fb9c263490","ref":"refs/heads/master","pushedAt":"2024-09-04T19:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Fix the sha sum format to be compatible with coreutils\n\nFixes https://github.com/openssl/openssl/issues/18313\n\nReviewed-by: Richard Levitte \nReviewed-by: Neil Horman \n(Merged from https://github.com/openssl/tools/pull/214)","shortMessageHtmlLink":"Fix the sha sum format to be compatible with coreutils"}},{"before":"6ef511a481b5275f85b287e2d352ed6f40335e0a","after":"601b00f9c674a7b81f0dfc34ea758a4107c20b31","ref":"refs/heads/master","pushedAt":"2024-09-03T19:12:29.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"ghmerge: Add missing ;;\n\nReviewed-by: Richard Levitte \n(Merged from https://github.com/openssl/tools/pull/213)","shortMessageHtmlLink":"ghmerge: Add missing ;;"}},{"before":"7c6bdb6f829bdbac43c8ce82a4e2cb4dbe98fe9d","after":"6ef511a481b5275f85b287e2d352ed6f40335e0a","ref":"refs/heads/master","pushedAt":"2024-07-12T19:12:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add perftools repository to review-tools\n\nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/209)","shortMessageHtmlLink":"Add perftools repository to review-tools"}},{"before":"54ed7d189f7b69fa0c178c55eddb7966cb0974a6","after":"7c6bdb6f829bdbac43c8ce82a4e2cb4dbe98fe9d","ref":"refs/heads/master","pushedAt":"2024-06-19T19:12:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"The hanshake and x509storeissuer tools also require a certsdir argument\n\nWe currently pass the certsdir argument as the first one, then\nfollows the threadcount argument. I'd like to change it so the\nthreadcount argument will be the last one. After changes in\nthis PR will land to repo, then all tools will accept a threadcount\nas the last argument. This will simplify additional scripting\nbuilt on top of those tools.\n\nThis also unifies the getopt handling across the tools to make\nit buildable on Windows.\n\nReviewed-by: Matt Caswell \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/206)","shortMessageHtmlLink":"The hanshake and x509storeissuer tools also require a certsdir argument"}},{"before":"8df3fcd76abb10a488d64744a7d26e9d9fb1c1a3","after":"54ed7d189f7b69fa0c178c55eddb7966cb0974a6","ref":"refs/heads/master","pushedAt":"2024-06-17T19:12:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"evp_fetch.c: Avoid using algorithm that is not in 3.0\n\nReviewed-by: Neil Horman \nReviewed-by: Sasa Nedvedicky \nReviewed-by: Richard Levitte \n(Merged from https://github.com/openssl/tools/pull/200)","shortMessageHtmlLink":"evp_fetch.c: Avoid using algorithm that is not in 3.0"}},{"before":"f8f26f9e86a9f1bf9468663c93ecae577825704e","after":"8df3fcd76abb10a488d64744a7d26e9d9fb1c1a3","ref":"refs/heads/master","pushedAt":"2024-06-10T19:12:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Update readme for new handshake option\n\nReviewed-by: Matt Caswell \nReviewed-by: Paul Dale \n(Merged from https://github.com/openssl/tools/pull/195)","shortMessageHtmlLink":"Update readme for new handshake option"}},{"before":"f76f116d4c66e1ce31a7ea867163cc7e2c5c62b6","after":"f8f26f9e86a9f1bf9468663c93ecae577825704e","ref":"refs/heads/master","pushedAt":"2024-06-06T19:12:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"HOWTO-make-a-release.md: Add section on adding new releases to the provider compat CI\n\nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/125)","shortMessageHtmlLink":"HOWTO-make-a-release.md: Add section on adding new releases to the pr…"}},{"before":"5eda20642c7898ee7bf92ceb3b781f5a1b981476","after":"92fda20a17dde697e6a3ff0a143aba6d19dcfcf8","ref":"refs/heads/provider-compat","pushedAt":"2024-06-05T22:24:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Update release script to include adding new releases to the provider compatibility checks","shortMessageHtmlLink":"Update release script to include adding new releases to the provider …"}},{"before":"e17f0ba070ddb334d44f417ad91d604381ff1bb3","after":"5eda20642c7898ee7bf92ceb3b781f5a1b981476","ref":"refs/heads/provider-compat","pushedAt":"2024-06-05T22:22:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Update release script to include adding new releases to the provider compatibility checks","shortMessageHtmlLink":"Update release script to include adding new releases to the provider …"}},{"before":"e92bf0b822d4457dfe50a1406a3b8ec3a9934967","after":"f76f116d4c66e1ce31a7ea867163cc7e2c5c62b6","ref":"refs/heads/master","pushedAt":"2024-06-05T19:12:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Update the PGP key ID to use when staging releases\n\nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/198)","shortMessageHtmlLink":"Update the PGP key ID to use when staging releases"}},{"before":"16bf733342e880024f75d81b1172b905ec0dd33d","after":"e92bf0b822d4457dfe50a1406a3b8ec3a9934967","ref":"refs/heads/master","pushedAt":"2024-05-20T19:12:37.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add environment variable to allow specific fetch testing\n\nReviewed-by: Paul Dale \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/193)","shortMessageHtmlLink":"Add environment variable to allow specific fetch testing"}},{"before":"58b7b94ae5f674e9665f9d9c816efa3c28fce4e6","after":"16bf733342e880024f75d81b1172b905ec0dd33d","ref":"refs/heads/master","pushedAt":"2024-05-10T19:12:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Benchmark for decoder performance (privkey) #454\n\npemread.c/pemread gets renamed to pkeyread.c/pkeyread\nThe tool can newly benchmak RSA, DSA, DH, DHX, EC, XKEY.\n\nCommit also adds genkey.sh shell script. The script is\nused by Makefile as regen_key_samples target. Makefile\nsaves generated keys into 'keys.h' header file.\n\nThe geneated keys.h file is committed to minimize\nbuild dependencies which would be otherwise introduced\nby genkey.sh script.\n\nTo add new key one should update genkey.sh script.\n\nReviewed-by: Matt Caswell \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/191)","shortMessageHtmlLink":"Benchmark for decoder performance (privkey) #454"}},{"before":"291a580209449f6aebf34e433f3b5f9afbd44c2b","after":"58b7b94ae5f674e9665f9d9c816efa3c28fce4e6","ref":"refs/heads/master","pushedAt":"2024-05-06T19:12:39.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Convert all perf tools to not use ossl_time_divide\n\nIt looses information as its doing integer division\n\nReviewed-by: Matt Caswell \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/184)","shortMessageHtmlLink":"Convert all perf tools to not use ossl_time_divide"}},{"before":"50849d482983ca675230220ffe5727ce9a03956b","after":"291a580209449f6aebf34e433f3b5f9afbd44c2b","ref":"refs/heads/master","pushedAt":"2024-04-24T19:12:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Fix up stylistic errors\n\nReviewed-by: Paul Dale \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/168)","shortMessageHtmlLink":"Fix up stylistic errors"}},{"before":"8a5794563f9743844b4976a0c63a6f9552d7b3c8","after":"50849d482983ca675230220ffe5727ce9a03956b","ref":"refs/heads/master","pushedAt":"2024-04-17T19:12:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Adjust Makefile for non-gnu OSes\n\nLet Makefile to use CC variable to chose compiler conveniently.\nRename current CFLAGS to CPPFLAGS.\n\nAlso we need to pass '-pthread' option on OpenBSD. The option\nis carried in CFLAGS now.\n\nReviewed-by: Neil Horman \nReviewed-by: Richard Levitte \nReviewed-by: Dmitry Belyavskiy \n(Merged from https://github.com/openssl/tools/pull/188)","shortMessageHtmlLink":"Adjust Makefile for non-gnu OSes"}},{"before":"533166818de4a73df56e4059e13667614fa85496","after":"8a5794563f9743844b4976a0c63a6f9552d7b3c8","ref":"refs/heads/master","pushedAt":"2024-04-15T19:12:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add label validation to prs\n\nAdd a check to ensure that we don't merge prs that don't have severity:\nurgent or approval: ready to merge set\n\nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/190)","shortMessageHtmlLink":"Add label validation to prs"}},{"before":"39e3169cda53e8fb85a7b3793abf6f37d88a593c","after":"533166818de4a73df56e4059e13667614fa85496","ref":"refs/heads/master","pushedAt":"2024-04-05T18:12:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Remove FTP url from announcements and add GH releases URL\n\nCo-authored-by: Anton Arapov \n\nReviewed-by: Anton Arapov \nReviewed-by: Paul Dale \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/187)","shortMessageHtmlLink":"Remove FTP url from announcements and add GH releases URL"}},{"before":"f86e03b3fd7721fc79478b9c2f6c1b5b34596dd5","after":"39e3169cda53e8fb85a7b3793abf6f37d88a593c","ref":"refs/heads/master","pushedAt":"2024-03-22T18:12:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add 3.3 branch and remove obsolete ones in tools\n\nReviewed-by: Hugo Landau \n(Merged from https://github.com/openssl/tools/pull/185)","shortMessageHtmlLink":"Add 3.3 branch and remove obsolete ones in tools"}},{"before":"259b15489c429ea0d08abc18d56c03a825b6c9eb","after":"f86e03b3fd7721fc79478b9c2f6c1b5b34596dd5","ref":"refs/heads/master","pushedAt":"2024-02-16T18:12:31.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"perf: Avoid taking too long time with high thread counts\n\nWe change the tests to perform the same number\nof iterations regardless of the thread counts.\nAlthough this raises the running time for small\nnumber of threads, this avoids very long running\ntimes for 100 or more threads.\n\nReviewed-by: Matt Caswell \n(Merged from https://github.com/openssl/tools/pull/162)","shortMessageHtmlLink":"perf: Avoid taking too long time with high thread counts"}},{"before":"cfc0cf920fa8193826e673b1fe070a50f2530b6d","after":"259b15489c429ea0d08abc18d56c03a825b6c9eb","ref":"refs/heads/master","pushedAt":"2023-11-08T18:12:36.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Allow gitaddrev path to be customised via environment variable\n\nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/171)","shortMessageHtmlLink":"Allow gitaddrev path to be customised via environment variable"}},{"before":"861d005d9caf51556d338c9321fec0e76b8adc6a","after":"cfc0cf920fa8193826e673b1fe070a50f2530b6d","ref":"refs/heads/master","pushedAt":"2023-11-03T18:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add 3.2 branch to pick-to-branch and opensslpull\n\nReviewed-by: Paul Dale \n(Merged from https://github.com/openssl/tools/pull/169)","shortMessageHtmlLink":"Add 3.2 branch to pick-to-branch and opensslpull"}},{"before":"b6c9089c4ccf27e58a94ab677924fd5847b3bdcd","after":"861d005d9caf51556d338c9321fec0e76b8adc6a","ref":"refs/heads/master","pushedAt":"2023-09-11T19:12:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"release-tools/do-copyright-year: Always update copyright year in README.md\n\nThe copyright in README.md is supposed to have global scope.\n\nReviewed-by: Matt Caswell \nReviewed-by: Richard Levitte \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/159)","shortMessageHtmlLink":"release-tools/do-copyright-year: Always update copyright year in READ…"}},{"before":"4307d538d9f8b2f181e2324907fdba547d545858","after":"b6c9089c4ccf27e58a94ab677924fd5847b3bdcd","ref":"refs/heads/master","pushedAt":"2023-08-09T23:56:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add how to handle security issues document\n\nReviewed-by: Matt Caswell \n(Merged from https://github.com/openssl/tools/pull/165)","shortMessageHtmlLink":"Add how to handle security issues document"}},{"before":"0204f8228c951703bb4e3eb473ca2970f399b332","after":"649fe5a022e8d7aae5265d7bd8b2ebb718e7d1a4","ref":"refs/heads/sec-issues","pushedAt":"2023-08-09T02:52:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add how to handle security issues document","shortMessageHtmlLink":"Add how to handle security issues document"}},{"before":null,"after":"0204f8228c951703bb4e3eb473ca2970f399b332","ref":"refs/heads/sec-issues","pushedAt":"2023-08-09T02:51:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add how to handle security issues document","shortMessageHtmlLink":"Add how to handle security issues document"}},{"before":"2e35e54163b62f0cb558b07485c5c5b2d513628e","after":"4307d538d9f8b2f181e2324907fdba547d545858","ref":"refs/heads/master","pushedAt":"2023-07-14T19:12:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Add a performance test for PEM_read_bio_PrivateKey()\n\nWe repeatedly attempt to load an RSA Private Key and measure performance.\n\nReviewed-by: Tomas Mraz \nReviewed-by: Dmitry Belyavskiy \nReviewed-by: Paul Dale \n(Merged from https://github.com/openssl/tools/pull/161)","shortMessageHtmlLink":"Add a performance test for PEM_read_bio_PrivateKey()"}},{"before":"988e13a8d44b7266cda11c5e6e815c6084451aed","after":"2e35e54163b62f0cb558b07485c5c5b2d513628e","ref":"refs/heads/master","pushedAt":"2023-06-23T19:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"Enable a different announcement for premium releases\n\nThe basic data of what is considered premium and what is considered\npublic releases, a new bash function is added, std_release_type(), found in\nrelease-tools/release-aux/release-data-fn.sh.\n\nAlong with this, the non-descript variable 'tag' is renamed to 'release_tag',\nand a spelling error is corrected.\n\nFixes #157\n\nReviewed-by: Matt Caswell \nReviewed-by: Tomas Mraz \n(Merged from https://github.com/openssl/tools/pull/160)","shortMessageHtmlLink":"Enable a different announcement for premium releases"}},{"before":"b756785860ddd15930258205e71edcf59545768c","after":"988e13a8d44b7266cda11c5e6e815c6084451aed","ref":"refs/heads/master","pushedAt":"2023-05-30T19:12:33.501Z","pushType":"push","commitsCount":4,"pusher":{"login":"paulidale","name":"Pauli","path":"/paulidale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17916609?s=80&v=4"},"commit":{"message":"release-tools/stage-release.sh: Update copyright year\n\nReviewed-by: Matt Caswell \n(Merged from https://github.com/openssl/tools/pull/155)","shortMessageHtmlLink":"release-tools/stage-release.sh: Update copyright year"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOVQxOToxMjozMy4wMDAwMDBazwAAAASxROpp","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOVQxOToxMjozMy4wMDAwMDBazwAAAASxROpp","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNS0zMFQxOToxMjozMy41MDE4NDdazwAAAAM3QXBG"}},"title":"Activity · paulidale/tools"}