There is a lot of "who kills who" useless fluff, and everything to do with the wife is boring, but too much gold otherwise.
It is amazing to see how seasons got better and better until the finale. The last season was amazing, Ciro Santilli actually watched all episodes of that one! This is clearly seen on the evolution of metacritic scores.
CIA 2010 covert communication websites Expired domain trackers Updated 2025-07-14 +Created 1970-01-01
When you Google most of the hit domains, many of them show up on "expired domain trackers", and above all Chinese expired domain trackers for some reason, notably e.g.:This suggests that scraping these lists might be a good starting point to obtaining "all expired domains ever".
- hupo.com: e.g. static.hupo.com/expdomain_myadmin/2012-03-06(国际域名).txt. Heavily IP throttled. Tor hindered more than helped.Scraping script: ../cia-2010-covert-communication-websites/hupo.sh. Scraping does about 1 day every 5 minutes relatively reliably, so about 36 hours / year. Not bad.Results are stored under
tmp/humo/<day>
.Check for hit overlap:The hits are very well distributed amongst days and months, at least they did a good job hiding these potential timing fingerprints. This feels very deliberately designed.grep -Fx -f <( jq -r '.[].host' ../media/cia-2010-covert-communication-websites/hits.json ) cia-2010-covert-communication-websites/tmp/hupo/*
There are lots of hits. The data set is very inclusive. Also we understand that it must have been obtains through means other than Web crawling, since it contains so many of the hits.Some of their files are simply missing however unfortunately, e.g. neither of the following exist:webmasterhome.cn did contain that one however: domain.webmasterhome.cn/com/2012-07-01.asp. Hmm. we might have better luck over there then?2018-11-19 is corrupt in a new and wonderful way, with a bunch of trailing zeros:ends in:wget -O hupo-2018-11-19 'http://static.hupo.com/expdomain_myadmin/2018-11-19%EF%BC%88%E5%9B%BD%E9%99%85%E5%9F%9F%E5%90%8D%EF%BC%89.txt hd hupo-2018-11-19
000ffff0 74 75 64 69 65 73 2e 63 6f 6d 0d 0a 70 31 63 6f |tudies.com..p1co| 00100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 0018a5e0 00 00 00 00 00 00 00 00 00 |.........|
More generally, several files contain invalid domain names with non-ASCII characters, e.g. 2013-01-02 contains365<D3>л<FA><C2><CC>.com
. Domain names can only contain ASCII charters: stackoverflow.com/questions/1133424/what-are-the-valid-characters-that-can-show-up-in-a-url-host Maybe we should get rid of any such lines as noise.Some files around 2011-09-06 start with an empty line. 2014-01-15 starts with about twenty empty lines. Oh and that last one also has some trash bytes the end<B7><B5><BB><D8>
. Beauty. - webmasterhome.cn: e.g. domain.webmasterhome.cn/com/2012-03-06.asp. Appears to contain the exact same data as "static.hupo.com"Also has some randomly missing dates like hupo.com, though different missing ones from hupo, so they complement each other nicely.Some of the URLs are broken and don't inform that with HTTP status code, they just replace the results with some Chinese text 无法找到该页 (The requested page could not be found):Several URLs just return length 0 content, e.g.:It is not fully clear if this is a throttling mechanism, or if the data is just missing entirely.
curl -vvv http://domain.webmasterhome.cn/com/2015-10-31.asp * Trying 125.90.93.11:80... * Connected to domain.webmasterhome.cn (125.90.93.11) port 80 (#0) > GET /com/2015-10-31.asp HTTP/1.1 > Host: domain.webmasterhome.cn > User-Agent: curl/7.88.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 21 Oct 2023 15:12:23 GMT < Server: Microsoft-IIS/6.0 < X-Powered-By: ASP.NET < Content-Length: 0 < Content-Type: text/html < Set-Cookie: ASPSESSIONIDCSTTTBAD=BGGPAONBOFKMMFIPMOGGHLMJ; path=/ < Cache-control: private < * Connection #0 to host domain.webmasterhome.cn left intact
Starting around 2018, the IP limiting became very intense, 30 mins / 1 hour per URL, so we just gave up. Therefore, data from 2018 onwards does not contain webmasterhome.cn data.Starting from2013-05-10
the format changes randomly. This also shows us that they just have all the HTML pages as static files on their server. E.g. with:we see:grep -a '<pre' * | s
2013-05-09:<pre style='font-family:Verdana, Arial, Helvetica, sans-serif; '><strong>2013<C4><EA>05<D4><C2>09<C8>յ<BD><C6>ڹ<FA><BC><CA><D3><F2><C3><FB></strong><br>0-3y.com 2013-05-10:<pre><strong>2013<C4><EA>05<D4><C2>10<C8>յ<BD><C6>ڹ<FA><BC><CA><D3><F2><C3><FB></strong>
- justdropped.com: e.g. www.justdropped.com/drops/010112com.html. First known working day:
2006-01-01
. Unthrottled. - yoid.com: e.g.: yoid.com/bydate.php?d=2016-06-03&a=a. First known workding day:
2016-06-01
.
Data comparison:
- 2012-01-01Looking only at the
.com
:The lists are quite similar however.- webmastercn has just about ten extra ones than justdropped, the rest is exactly the same
- justdropped has some extra and some missing from hupo
We've made the following pipelines for hupo.com + webmasterhome.cn merging:
./hupo.sh &
./webmastercn.sh &
./justdropped.sh &
wait
./justdropped-post.sh
./hupo-merge.sh
# Export as small Google indexable files in a Git repository.
./hupo-repo.sh
# Export as per year zips for Internet Archive.
./hupo-zip.sh
# Obtain count statistics:
./hupo-wc.sh
Count unique domains in the repos:
( echo */*/*/* | xargs cat ) | sort -u | wc
The extracted data is present at:Soon after uploading, these repos started getting some interesting traffic, presumably started by security trackers going "bling bling" on certain malicious domain names in their databases:
- archive.org/details/expired-domain-names-by-day
- github.com/cirosantilli/expired-domain-names-by-day-* repos:
- github.com/cirosantilli/expired-domain-names-by-day-2006
- github.com/cirosantilli/expired-domain-names-by-day-2007
- github.com/cirosantilli/expired-domain-names-by-day-2008
- github.com/cirosantilli/expired-domain-names-by-day-2009
- github.com/cirosantilli/expired-domain-names-by-day-2010
- github.com/cirosantilli/expired-domain-names-by-day-2011 (~11M)
- github.com/cirosantilli/expired-domain-names-by-day-2012 (~18M)
- github.com/cirosantilli/expired-domain-names-by-day-2013 (~28M)
- github.com/cirosantilli/expired-domain-names-by-day-2014 (~29M)
- github.com/cirosantilli/expired-domain-names-by-day-2015 (~28M)
- github.com/cirosantilli/expired-domain-names-by-day-2016
- github.com/cirosantilli/expired-domain-names-by-day-2017
- github.com/cirosantilli/expired-domain-names-by-day-2018
- github.com/cirosantilli/expired-domain-names-by-day-2019
- github.com/cirosantilli/expired-domain-names-by-day-2020
- github.com/cirosantilli/expired-domain-names-by-day-2021
- github.com/cirosantilli/expired-domain-names-by-day-2022
- github.com/cirosantilli/expired-domain-names-by-day-2023
- github.com/cirosantilli/expired-domain-names-by-day-2024
- GitHub trackers:
- admin-monitor.shiyue.com
- anquan.didichuxing.com
- app.cloudsek.com
- app.flare.io
- app.rainforest.tech
- app.shadowmap.com
- bo.serenety.xmco.fr 8 1
- bts.linecorp.com
- burn2give.vercel.app
- cbs.ctm360.com 17 2
- code6.d1m.cn
- code6-ops.juzifenqi.com
- codefend.devops.cndatacom.com
- dlp-code.airudder.com
- easm.atrust.sangfor.com
- ec2-34-248-93-242.eu-west-1.compute.amazonaws.com
- ecall.beygoo.me 2 1
- eos.vip.vip.com 1 1
- foradar.baimaohui.net 2 1
- fty.beygoo.me
- hive.telefonica.com.br 2 1
- hulrud.tistory.com
- kartos.enthec.com
- soc.futuoa.com
- lullar-com-3.appspot.com
- penetration.houtai.io 2 1
- platform.sec.corp.qihoo.net
- plus.k8s.onemt.co 4 1
- pmp.beygoo.me 2 1
- portal.protectorg.com
- qa-boss.amh-group.com
- saicmotor.saas.cubesec.cn
- scan.huoban.com
- sec.welab-inc.com
- security.ctrip.com 10 3
- siem-gs.int.black-unique.com 2 1
- soc-github.daojia-inc.com
- spigotmc.org 2 1
- tcallzgroup.blueliv.com
- tcthreatcompass05.blueliv.com 4 1
- tix.testsite.woa.com 2 1
- toucan.belcy.com 1 1
- turbo.gwmdevops.com 18 2
- urlscan.watcherlab.com
- zelenka.guru. Looks like a Russian hacker forum.
- LinkedIn profile views:
- "Information Security Specialist at Forcepoint"
Check for overlap of the merge:
grep -Fx -f <( jq -r '.[].host' ../media/cia-2010-covert-communication-websites/hits.json ) cia-2010-covert-communication-websites/tmp/merge/*
Next, we can start searching by keyword with Wayback Machine CDX scanning with Tor parallelization with out helper ../cia-2010-covert-communication-websites/hupo-cdx-tor.sh, e.g. to check domains that contain the term "news":produces per-year results for the regex term OK lets:
./hupo-cdx-tor.sh mydir 'news|global' 2011 2019
news|global
between the years under:tmp/hupo-cdx-tor/mydir/2011
tmp/hupo-cdx-tor/mydir/2012
./hupo-cdx-tor.sh out 'news|headline|internationali|mondo|mundo|mondi|iran|today'
Other searches that are not dense enough for our patience:
world|global|[^.]info
OMG and a few more. It's amazing.
news
search might be producing some golden, golden new hits!!! Going full into this. Hits:- thepyramidnews.com
- echessnews.com
- tickettonews.com
- airuafricanews.com
- vuvuzelanews.com
- dayenews.com
- newsupdatesite.com
- arabicnewsonline.com
- arabicnewsunfiltered.com
- newsandsportscentral.com
- networkofnews.com
- trekkingtoday.com
- financial-crisis-news.com
Count: 0.
Funding:
- 2023: 1.1m pounds www.uktech.news/deep-tech/lumai-grant-20230215
To break the meta means to find a new strategy that offers a significant advantage over the existing meta.
Due to Ciro Santilli's self perceived creative personality, Ciro Santilli is very attracted to meta breaks.
How One Man Changed the High Jump Forever by Olympics (2018)
Source. Dick Fosbury created and implemented the Fosbury Flop jump style in 1968.By Zuckerberg. The selection seems decent. And natural sciences only, which is good. A bit more application oriented than the Nobel Prize it seems, e.g. 2022 separates physics and fundamental physics.
Appears to explain award reasoning even worse than the Nobel Foundation.
This step is genius because sequencing is basically a signal-to-noise problem, as you are trying to observe individual tiny nucleotides mixed with billions of other tiny nucleotides.
With bridge amplification, we group some of the nucleotides together, and multiply the signal millions of times for that part of the DNA.
Simulates vintage hardware synthesizers, and includes some pretty complex ones!
Aims to show an UI that looks exactly like the synthesizers in question.
Cool data embedded in the Bitcoin blockchain Ordinal ASCII art inscription Updated 2025-07-14 +Created 1970-01-01
It was obtained by casually scrolling down the list of the largest text ordinal inscription on less until patience ran out.
Some of them are dedicated ASCII art inscriptions, others are just small highlights to other more important text like code.
Although tere is some element of commercialism in some those inscriptions, a bit like what is rampant in the images, some of them are honestly just cool and possibly novel.
Ordinal ruleset inscription collections:
- Humongous surfers. These are very large ASCII arts, by far the largest on the chain. Being so large allows for shades of gray to be encoded on the average luminosith of individual letters:
- tx 0f29dab68e9898f9349ef4508908f7df48dc56577cfd94ff173dd2c1b29ad7a3 (240,300 bytes): surfer girl
Figure 1. Surfer girl. Screenshot of the ordinals.com/inscription/0f29dab68e9898f9349ef4508908f7df48dc56577cfd94ff173dd2c1b29ad7a3i0 Ordinal ASCII art inscription as seen on Chromium 85. - tx b256c850f8cab037d387d3db70643b79f5848565181b341de6c44f86307db9e7
- tx d0e090aeeb289e19b8c9ad71c00daa28367e9afc4593c89513e4f96abcda8ea5
- tx fb754df7b17c7b76a6508b5d4e29f89d55ada38cf1f75ca4d797c58f45b73cd1
- tx a7e6697781513bdeddada7c32b6200fb8499624664ba056f8318541b63f68c36
- tx 0f29dab68e9898f9349ef4508908f7df48dc56577cfd94ff173dd2c1b29ad7a3 (240,300 bytes): surfer girl
- Michael Jackson Unicode art. Uses Unicode Braille characters. Marked "First Onchain Collection" and "Legends @ BTC" . Pretty cool design, the textures are quite cool and suggest glittering flying seat. Though if those ever sell, someone is going to get sued to Hell by MJ's estate!
- 1/12 tx 7e6c5f8ebb41604c79f2af60bb7af623c42b32afe4d7571ba81d7b9b44d33a2d
- 2/12 tx 8ac99472b865d01f8724ba23b6f79ca56d30b44fae0eb509984237b722b812c3
- 5/12 tx 74c94ceba91cf59de2740bcfa5bc2fdb3ea0d4499e73a12100ed365d25ae9061
- 7/12 tx 0360a10e67365ab8cc4e32f199c71cabf4fb6a08ca9773dd1d13d7f7936dcf99
- 8/12 tx 4814880f931db8aa59e1c2aba2c227e83d928d297cbe91978458b6d83e38ddfc
- 9/12 tx 909228c88176b65f5705ade5fa059030d4c646cacd171737af03ac965047fa82
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⡀⠀⠄⠀⠀⠄⠀⠠⠀⠀⠂⠀⠄⠂⣀⠄⠂⠠⠐⠀⡀⠂⠐⠠⠈⠄⠂⠡⠐⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⡈⠄⡃⠌⡐⠡⡈⠄⡁⢂⠡⠐⠀⢂⠀⠂⠀⠄⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠂⠈⠀⠀⠄⠀⢀⠠⠐⠀⠠⠐⠀⠀⢁⢠⣼⣶⡶⠛⠛⢋⠀⠂⠁⠄⠈⣄⣦⣁⣂⠡⢀⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⠄⠡⠈⢄⠡⢐⡈⠔⡈⠤⠑⡀⠆⡐⢀⠂⠌⡐⠀⠄⠂⠁⠠⠀⠀⠀⠂⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠄⠀⠁⠀⡀⠀⠂⠀⠐⠀⠠⠀⠠⠀⠀⢀⠂⠀⠄⠈⣠⣶⣿⣏⠖⠂⠁⡐⢀⠠⢁⠈⠄⣱⢏⡲⢭⡛⠿⠷⠶⢥⣈⠄⠡⠈⠄⠡⢈⠐⠡⢈⠐⠡⠈⠄⠡⠈⠄⡁⢂⠌⠄⡒⠌⡐⠡⢃⠌⡐⢀⠂⠌⡐⠠⢈⠀⠂⡁⢀⠂⠁⡀⠐⠈⠀⠀⢀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⢀⠀⠈⠀⡀⠄⠀⠄⠐⠈⠀⠀⠄⠂⣰⣿⣿⠫⠁⠀⠂⢱⠀⡀⠀⢀⡈⠼⣇⢯⡒⠥⢚⠡⠀⠀⠀⠈⠑⠶⣥⣈⠔⡈⠄⣁⠂⠌⠄⠡⢈⠂⢡⠈⡐⠄⠌⡒⢨⠐⡡⠑⡌⠰⠈⠤⢈⠐⠠⠁⠄⠂⡁⠠⠀⡀⠂⠀⠄⠐⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠠⠀⠀⠀⠂⠀⠈⠀⠀⠠⠀⠀⠠⠀⠀⡀⠠⠀⠂⠁⠚⠄⡆⢸⣿⡟⡃⠄⡂⠁⠠⠈⠳⣶⣄⡠⣸⡝⢶⢢⡑⠊⠄⡑⢢⡀⠀⠀⠀⠀⠉⠿⡆⠐⡈⠄⡈⠔⡈⠐⠂⢌⠀⠆⡐⠨⠐⠤⢁⠆⢡⠑⡈⠅⡑⠂⡄⠊⠄⠡⢈⠐⢀⠂⢁⠀⠂⠁⡀⠂⠀⠄⠀⠠⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠐⠀⠁⢀⠀⠄⠐⢀⠠⢀⠐⡀⠦⠐⡀⠀⠁⠄⠋⠉⠴⢁⠈⡙⠇⠀⠂⠁⠈⠛⢿⣷⡿⣜⢢⠙⠄⠂⠀⠠⠙⠦⠀⠀⠀⠠⠀⠄⢃⡐⡐⠠⠂⠄⢃⢁⠂⠌⡐⠠⣁⠩⠐⡌⠰⡁⢎⠰⡁⠆⢡⠀⠅⣈⠐⠠⠈⠄⢂⠠⠀⢁⠀⠄⠐⠀⠠⠐⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠠⠀⠐⠀⡀⠄⠡⠈⠐⠂⢈⠂⠑⠐⠨⡀⠀⠀⠉⠁⠈⠀⠀⠠⠐⠀⠘⡄⠂⢀⠐⠈⢠⣀⠀⠀⠀⠉⠻⢿⣷⣭⡄⠀⠀⠀⢀⠀⠀⠀⠁⠀⠌⡐⢢⣾⣿⣷⡇⠌⣀⠂⠌⡐⠠⠡⠄⢂⠱⢈⠆⠱⣈⠒⠤⢉⠄⢊⡐⠠⠈⠄⠡⢈⠠⠀⠌⢀⠠⠀⠂⠀⠄⠀⠄⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⡀⠀⠈⢀⠠⠀⠄⠀⠀⠁⠀⠁⡀⡀⠀⡄⠀⢈⠁⠆⠀⡁⠀⡌⢆⠟⠛⠃⠀⠀⠀⢀⠐⢀⠀⠙⠻⣿⣶⣄⠀⠀⠀⠐⠈⢀⠐⠠⠄⣩⣿⣿⣿⠩⠐⠠⢈⡐⠠⠑⡠⠉⡄⠢⣁⠊⢅⠢⡉⢆⠡⢊⠤⠐⠡⠈⠄⡁⢂⠐⢈⠠⠀⡀⠂⠁⠠⠀⠂⢀⠀⠠⠐⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠁⠀⠀⠐⢈⠀⠀⠂⠀⠄⠀⢠⠀⡀⠀⠀⠐⠂⢁⢀⠐⠠⠀⠄⠀⠈⢀⠀⠄⠐⠤⠑⢈⠈⠄⠚⠧⠀⠡⠀⢀⠀⠄⠀⠀⢀⠈⡙⢿⣻⣤⡀⠂⠈⠀⠌⡐⠐⡀⢋⠉⢃⠰⠉⢄⠡⠠⠑⡠⢁⠒⡈⠔⡠⢉⠢⠑⡌⢢⠑⡌⠄⢃⠌⡐⢂⠐⠠⠈⠄⠂⠐⡀⠄⠁⠠⠐⠀⡀⠠⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠠⠀⠀⢀⠀⠈⠀⠀⠀⠄⠀⠀⡀⠀⢀⠀⠀⠆⠠⠈⠀⠀⠀⠠⠀⢊⠴⢂⠡⢀⠠⠐⡈⠔⡈⠀⠀⠠⠐⣀⠁⠄⠀⠀⠈⠐⠀⠠⢀⡐⡈⠄⡁⠯⣽⣆⠀⠁⢂⡐⠡⠴⠋⠀⢀⠂⡉⠄⢂⡁⠆⡁⢂⠂⡅⠢⢑⠢⢁⠣⡘⢄⠣⡐⢉⠄⢂⡐⠠⠈⠄⠡⢈⠀⠡⠀⡐⠈⢀⠐⠀⢀⠀⠄⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠠⠀⠀⠀⠂⠁⢀⠠⠀⢀⠈⠀⠀⠂⠄⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠒⣡⠒⠡⠒⠠⠄⠀⠠⠀⠀⠄⣬⠃⠀⠠⠁⠀⠄⡁⢦⠼⣰⣥⠖⠀⡀⠙⠳⡀⠀⢆⢁⠂⠡⠐⠤⢈⠐⡈⠤⠐⡐⡈⠄⢒⡀⠣⠌⡰⠁⢆⠱⡈⠆⡑⢨⠈⠤⠀⡅⠈⠄⡁⠂⠌⠐⡀⠄⠂⠀⠄⠈⠀⢀⠠⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⡀⠁⠀⢀⠀⠀⠡⠀⡐⠀⠈⡀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠂⠀⠁⠀⠀⠀⠀⢠⣈⡇⠀⠠⠐⠠⢁⠢⣉⠆⡉⠴⣁⣈⡙⠜⠃⠄⡁⢂⠘⠆⣈⠡⠀⠐⢂⠡⠐⢂⠡⢐⠠⠉⡄⠰⢁⠊⠔⣉⠢⡑⢌⢂⠱⡀⢊⠄⡡⠠⢁⠂⠄⠡⠈⠄⠐⡀⠌⠀⠂⢀⠁⠀⢀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⡀⠁⠀⠈⠀⢀⠀⠐⠀⠀⡀⠀⠡⢀⠑⡀⠠⠁⠈⡀⠂⡀⠐⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⣠⣽⣿⠃⠀⠁⢂⠱⣂⠑⡌⡐⣍⢲⣀⡉⠉⠀⠁⠂⠴⡲⣌⠐⡀⠆⠀⠈⡄⢂⡉⠄⢊⠄⠂⠥⠐⣁⠊⢌⠒⡠⢃⠜⡠⢊⠤⢑⠠⠒⠠⢁⠂⠌⠠⠁⠌⡀⠡⢀⠐⠈⠀⠄⢀⠈⠀⠀⡀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠠⠐⠀⠀⢀⠠⠐⠀⠀⠀⠄⠠⠐⠠⠠⠁⠀⠰⢀⠑⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠈⢠⡜⣽⣿⣯⢡⠀⠈⠠⠑⠤⢣⠐⠱⠌⢧⡍⠁⠀⠀⠈⠀⠀⠉⣏⠓⡐⢈⠀⢁⠰⢀⠂⠜⠠⡈⠜⠠⡁⢂⠅⡊⠤⠑⡌⢢⠑⡌⢢⠁⠆⡡⠑⡠⠈⡄⠡⢈⠐⢀⠂⠄⠂⢁⠀⠂⠀⡀⠄⠁⠀⡀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠂⠁⠀⠀⠄⠈⠀⠀⠐⠈⠀⠀⠀⠄⠂⠀⡀⠀⠠⠀⠡⠈⠠⠐⠀⠠⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡘⡼⢻⣿⣲⢣⠎⡰⠀⠁⡈⠀⠄⠂⠠⠀⠀⠀⠀⠀⠁⡀⠀⠁⠀⠤⢃⠙⣆⠀⠀⣂⠡⠘⡈⠔⡐⠌⠡⡐⢡⠘⡠⢊⡑⢌⠢⡑⢌⠢⡑⡈⠤⠑⠠⡁⠄⡁⠂⠌⡀⠂⠄⠡⢀⣄⣂⣡⣤⣴⡶⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⡀⠀⠄⠀⠀⠂⠀⠐⠀⢀⠈⠀⠀⠀⠄⠀⠐⠀⠀⠄⠀⡀⠁⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⡐⣸⢱⢻⣿⠇⢣⠘⢄⠓⡲⠄⠢⠐⡁⢂⠁⠀⢀⠀⠄⠀⠀⢀⠈⠀⢈⠀⠣⢮⠀⠀⡤⠈⢅⠒⠠⡁⢊⠡⠐⢂⠢⢑⠂⡌⢢⠑⡌⢢⠑⠤⠑⡈⠆⠡⠐⡀⢂⠁⠂⠄⣡⣾⣿⣿⣿⣟⣯⣛⣃⣀⣐⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⡀⠐⠀⠀⠐⠈⠀⠀⠠⠈⠀⠀⠐⠀⠈⢀⠠⠐⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⡔⢠⠁⣼⡃⡎⣿⡘⡄⠣⠌⢂⠡⡌⠆⠡⠐⠠⢈⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠂⠡⢀⠀⠀⡷⢫⡄⠌⡡⠐⣁⢂⠩⠠⢑⡈⢆⡘⢄⠣⡘⠤⣉⠢⢑⠠⢁⢊⠐⡐⢠⢌⣴⣾⣿⠿⣩⢝⠲⠌⣻⣿⣟⣟⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⡀⠀⢀⠀⠁⠀⠀⢀⠈⠀⠀⠂⠈⠀⠀⠂⠁⢀⠀⠁⠀⡀⠄⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠔⡁⠄⢺⣿⣿⢿⣿⢦⡁⢎⡴⢋⠔⡨⢐⠡⡘⠠⠀⠀⠀⠁⠀⠀⠀⠀⠄⠂⡔⣀⠠⠀⠀⣐⢧⠾⡶⢥⢒⠠⢂⠡⢁⠂⡌⠰⢈⠢⡑⢌⠒⡄⢃⠢⢁⢂⢂⡜⡘⣜⢾⣿⣿⣥⣘⠠⢈⠐⠠⢙⣿⣻⣯⣵⣿⠁⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠁⠀⢀⠀⠁⠀⠂⠁⠠⠐⠀⡀⢀⠈⠀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠄⠂⠀⠌⣸⣿⣧⣏⣮⢳⡼⢏⡘⢤⠚⢠⠃⠰⣁⠂⡁⠀⠁⠀⠀⠐⠀⠀⠀⠤⠉⠀⠁⠀⠀⢋⠌⠐⡀⣊⣾⡷⣾⠤⣁⠒⣀⠣⢈⠔⡁⢎⡰⣈⡦⡵⠎⠎⠲⢀⠁⠀⠌⠡⢋⡾⠵⢾⣤⣎⣰⢀⡆⡱⣾⠘⠀⢀⠀⠀⡀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠐⠀⠀⠂⠀⠀⡀⠈⠀⡀⠀⠁⠀⠂⠀⠄⠀⡀⠀⠠⠐⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠁⠂⡍⣿⣿⣷⣯⡟⠱⡈⠜⡠⢉⠦⢁⢣⠦⣥⠀⠀⡀⠐⠀⠀⠀⠀⠄⠀⠠⠀⠁⠀⠀⠠⢀⠡⢐⠩⣴⣧⣍⣦⢰⡶⣤⡻⣵⢞⡻⢟⡋⣍⠒⢍⠒⡌⠐⠀⢠⠈⢀⠀⠡⠼⠀⡀⢀⠀⠉⠉⠈⠁⠀⡀⠠⠀⢀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠠⠀⠀⢀⠀⠠⠀⠀⠐⠀⠀⡀⠁⠐⠀⠠⠀⠂⠀⠐⠀⠠⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠄⢊⠱⣘⠼⣿⣿⣟⡰⢃⠬⣑⠢⢍⢂⠡⣎⠝⡂⠅⠀⠀⠀⡀⠀⠂⠀⠀⠠⢁⠂⠈⠀⠀⠁⡬⠖⠨⢀⠻⠿⠛⣈⠤⠑⠡⠼⡐⢆⡉⠌⡑⠌⠐⡀⠠⠀⢂⡁⢖⣈⠤⢜⠒⡁⠐⢀⠀⠄⠈⡀⠁⠠⠁⠀⡀⠄⠀⠀⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠂⢀⠀⠁⠀⠐⠀⠈⠀⠐⠀⠁⡀⠂⠁⡀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⢈⠐⡌⢢⠌⡻⢿⣯⣟⠶⣉⠖⡡⢊⠐⡊⣑⢨⣰⡼⢃⠀⠀⠁⠀⡀⠀⠀⠄⠀⠌⠐⠈⠆⠀⠘⢂⠄⠁⠄⠂⠄⡡⠀⢠⠛⢄⠓⡀⠒⠠⠐⠠⡁⠆⡰⢀⠬⣁⠆⣑⠚⡘⠠⠀⠄⡁⠄⠂⠐⡀⠠⠀⢁⠀⠂⢀⠀⠐⠀⢀⠀⠀⠐⠈⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⡀⠀⠄⠂⠁⠀⡀⠀⠈⢀⠠⠈⠀⠁⠠⠈⢀⠀⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⢀⠂⡘⢄⠫⣖⠱⢚⠟⠿⢷⣯⣶⠯⢞⡵⣮⢗⠳⣌⠣⠄⠂⠀⠂⠐⠀⠀⡀⠈⡐⠠⠈⠀⠀⢀⠂⠄⢨⠀⠆⠸⠄⠐⠠⢁⠂⠡⠤⠁⠆⡡⣒⠀⢒⠧⠂⠕⡈⠐⡀⠂⠄⠡⠈⠄⠐⠠⠁⢂⠀⠐⢀⠠⠀⠂⠀⠀⠂⠈⠀⠀⠄⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠠⠀⠀⢀⠀⠀⠄⠐⠀⠀⡀⠁⠀⡀⠄⠈⠀⠄⠐⠀⠠⠀⠐⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠢⢌⡌⠰⣈⠛⣦⣭⣩⣍⡴⣰⠚⣭⣞⠳⢎⡳⣌⠡⠂⠀⠠⠈⠀⡐⠀⠀⠀⠄⠡⠈⠄⠀⢀⠋⠆⡖⠨⢂⠁⡐⣈⠣⢄⡈⠔⣤⢩⠰⠥⢂⠋⠌⡐⡉⢐⠠⠁⠄⠡⠈⠄⠡⠈⠄⠁⠂⠄⠂⢁⠠⠀⠐⡀⠁⠐⠀⠁⡀⠂⠀⡀⠂⠀⢀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠂⠀⠁⠀⠠⠁⠀⠀⠂⠁⠀⠂⠈⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠡⠀⠃⠂⣀⠳⣌⠳⣄⣃⠓⡌⢎⢥⣿⠳⣌⡛⡬⡕⡎⡔⢁⠀⠁⠀⠄⠀⠄⠀⠈⠄⠡⠈⠄⠀⠠⢈⡐⢀⠆⣀⠒⠠⢂⠡⢒⡘⢡⠐⡄⢃⠒⢄⠣⠘⡄⡘⣀⠂⢡⠈⢂⠡⠈⠄⠡⠈⠄⡁⠂⠌⡀⠐⢈⠀⠄⠈⡀⠌⠀⠀⠄⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠁⠀⢀⠀⠀⡀⠈⠀⠐⠀⡀⠈⠀⠐⠈⠀⠄⠁⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⡀⠀⠄⢀⠰⢠⢉⠳⣧⢘⠻⣷⣾⣾⣞⣣⡝⢦⣙⠶⡝⣞⡴⢂⠀⠀⠂⠀⠠⡀⠀⠀⠌⠠⢁⠂⠀⠠⢁⠰⢈⠐⠠⡈⢁⠢⢁⠂⠤⢁⠊⠤⢁⠊⡐⠌⡡⠐⠄⡐⠈⡄⠌⡀⢂⠡⠈⠄⡁⠂⠄⡁⢂⠐⢈⠠⠀⢂⠀⠄⠀⠐⠀⡀⠄⠈⠀⠀⠀⠀⠀⢀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠈⠀⠀⠄⠀⡀⠁⠀⠂⠀⠄⠁⠠⠈⠀⠄⠂⠠⠀⢂⠠⠀⠁⠀⠠⠀⡁⠀⠌⢀⠡⠐⡀⠰⠀⢈⠢⡑⢎⠤⡙⡞⣧⣙⠶⣦⣍⣛⣏⡽⣣⢮⣝⠾⣱⢊⢆⠠⠈⠀⡀⠁⠀⠀⠀⠌⡐⢀⠂⠀⠐⠠⠒⢠⢁⠒⠠⡁⢂⠢⠉⡔⠨⡐⠡⠌⡐⢌⠰⢠⠉⠤⢁⠒⡀⠂⠔⡀⢂⠁⠂⠄⡁⢂⠐⠠⢈⠠⠀⢂⠀⠄⠂⠈⠀⢀⠀⠀⠀⠀⡀⠀⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠁⠀⠀⠁⠀⠠⠀⢀⠀⠁⡀⠈⠀⠐⠀⠠⠁⠀⠄⠁⠠⠀⢀⠐⠀⡀⠀⠠⠀⠄⠂⠌⠀⠀⠀⡁⠠⠂⠀⢧⡙⣦⢡⠹⣌⡻⢶⣅⠻⠿⣿⣿⣷⣯⣜⣣⢧⣋⣦⠁⠄⠀⡀⠠⠀⠈⢀⠢⠐⡀⠂⠀⠈⠡⠘⡀⠂⠌⠡⠠⢁⠂⡑⠠⢃⠰⢁⠊⠔⡈⠔⠂⡅⠒⣀⠂⡐⢁⠂⡐⠠⢈⠐⠠⠐⠀⠂⡁⠄⠀⠂⠀⠄⠂⢀⠂⠁⠀⠀⡀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⢀⠀⠂⠁⠀⢀⠀⠠⠀⢀⠀⠁⡀⠂⠀⠄⠁⠠⠈⢀⠐⠀⡀⠂⠠⢀⠀⠀⠀⡀⠀⠄⠀⠀⠀⠄⠀⠀⢳⡍⣖⢫⠖⣤⡙⢳⣽⣻⢷⣦⣝⣻⠿⣿⣿⡻⢿⣿⣿⢶⠀⠀⡀⠐⠀⢀⠂⠡⢀⠡⠀⠀⡁⠆⠡⢈⠐⠡⢁⠂⢌⠠⠑⡈⠔⣁⠊⠤⢑⠨⠑⠄⡃⠄⠒⣀⠂⡐⠠⢁⠂⡈⠐⢈⠀⡁⠠⠐⠈⢀⠁⠠⠈⠀⠠⠀⠈⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⡀⠀⠈⠀⢀⠀⠄⠀⠀⠄⠀⡀⠁⠠⠈⢀⠐⢀⠀⠂⠀⠄⢁⠠⢀⠀⠀⠀⡐⠀⢂⠑⠨⠀⠀⠠⢸⣾⣾⣿⣿⣷⣯⣷⢦⣙⠿⣾⣶⣾⠿⢶⣶⣽⣳⣦⡴⣠⢂⠀⠀⡀⠀⠀⠌⡐⢀⠂⠀⠀⡐⠈⠄⠡⡈⠔⠠⢁⠂⠌⢡⠈⠆⡄⠣⡈⠆⡡⢉⠢⢁⢊⠡⢀⠂⠄⡁⢂⠐⡀⠁⢂⠠⠀⠐⠀⡁⠠⠀⠂⠀⡁⠀⠀⠂⠁⢀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠠⠐⠀⠀⠀⠂⠁⠀⠠⠀⠈⢀⠠⠀⠀⠄⠁⠠⠀⢀⠂⠀⠌⠀⡐⠀⠄⠀⢂⠀⠀⠀⠈⠀⠨⠀⠀⠐⠀⠀⣿⣿⣿⣻⡿⠿⠿⠿⡿⣿⢿⡿⡾⢿⡿⠿⢿⣻⠭⠙⠁⠁⢀⠀⠄⠀⠀⠂⡐⠠⢈⠀⠀⡐⠉⠤⢁⡐⢈⡐⠄⠊⢌⠠⠘⡠⠌⡐⢡⠘⡄⢃⠜⢠⠂⣂⠡⢈⠐⡀⢂⠐⠠⠁⠠⠐⢈⠀⠐⠀⠠⠐⠈⢀⠀⠈⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⡀⠐⠀⠀⠂⠀⠐⠈⠀⠀⠄⠁⠠⠈⢀⠐⠀⡐⠈⢀⠐⠀⡐⠈⠐⡀⠐⠀⠀⠈⠀⠂⠀⠀⠂⠀⡀⠈⠛⠿⠵⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⣀⠠⢀⠠⠀⠐⠈⠀⠀⠠⠀⠀⠀⠄⡁⢂⠀⠀⠄⢃⠰⢀⠰⢀⠐⡈⠔⠂⠌⣁⠢⠘⣀⠃⡌⠰⣁⠊⡄⢃⠄⢂⠂⡐⢀⠂⠌⡀⢁⠂⢈⠀⠠⠁⠐⠀⠠⠈⢀⠠⠈⠀⠀⠄⠀⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠂⠀⠈⢀⠀⠈⢀⠠⠈⢀⠐⠀⠐⠀⠠⠐⠀⡀⠂⠠⠀⠁⠄⠂⠁⡐⠀⠀⠀⡀⠁⠀⠀⢀⠀⠀⠀⡀⠀⠀⠀⠐⠀⠀⠂⠈⠀⠀⡠⢌⠣⣍⢢⡁⠀⠀⠀⠐⠀⠀⡐⠈⠠⠐⠠⠀⠀⠌⡀⠆⡈⠐⠠⢈⠐⡈⠔⠡⡀⠆⢡⠐⠌⡐⠡⢄⠃⡌⢂⠌⠄⠒⡀⠂⠌⠠⠐⠀⠄⠂⡀⠁⠄⠈⢀⠐⠀⡀⠀⢀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⠀⠀⠀⡀⠈⠀⡀⠈⠀⡀⠀⠈⠀⡀⠐⠀⠠⠈⢀⠈⢀⠐⠀⠠⠀⠁⠄⠁⢂⠈⠄⠀⠂⠌⢠⠀⠀⠀⠠⠀⠀⠈⢀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠈⠀⠀⠉⠆⢁⠒⠀⢀⠈⠀⠀⠠⠀⠀⠠⠀⡁⢂⠀⠀⢂⠁⠢⢈⡐⢁⠂⠰⠐⡈⠰⢀⠊⢄⡘⢠⠡⠑⣂⠱⡐⠌⠰⢈⠐⠠⠁⠌⠠⢁⠈⠄⠂⢀⠂⠀⠁⡀⠀⠂⠀⠄⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⢀⠠⠀⠀⡀⠁⠀⡀⠁⢀⠀⠐⠈⠀⠐⠀⡀⠂⢀⠈⠀⠌⠀⠄⢁⠠⠀⠂⠁⠄⠂⡀⠌⠁⠲⢄⣠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠄⠈⠀⢀⠐⠠⠀⠀⠂⠌⡁⢂⠐⠠⡈⢁⢂⠁⡒⢈⠐⢂⠰⢀⢊⠡⡐⠰⢈⠌⣁⠂⠌⠠⠁⠌⡐⠠⢈⠀⠌⡀⠠⠁⡀⠄⠐⠈⠀⡀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⢀⠀⠁⠀⠀⠁⠀⠀⠠⠀⢀⠀⠁⡀⠀⠂⢀⠈⢀⠈⠀⠄⠀⠂⢀⠠⠁⠐⠈⢀⠠⠀⠂⢁⠈⠠⠐⠀⠄⠡⠀⢂⠀⠠⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⢀⠂⠐⠀⢁⠀⠠⢁⠂⣀⡈⠐⡀⠂⠌⡐⠠⢁⠂⢡⠐⡈⠰⢈⡐⠌⠄⢢⠑⠨⠄⢒⠠⠌⡀⠃⠌⡐⠠⠁⢂⠈⠄⠠⠐⠀⡀⠄⠂⠈⢀⠀⠀⠄⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠂⠈⠀⠐⠀⠠⠀⠀⠄⠀⠐⠀⡀⠠⠀⠠⠈⠀⠄⠁⡀⠠⠀⢁⠈⠀⠄⠂⢁⠠⠀⢁⠠⠁⡈⢀⠂⠠⠈⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠊⠄⢠⠀⠀⠁⠄⠀⠀⠈⠡⢀⢁⠢⢀⠁⠂⠌⡀⠂⠤⢁⠂⠰⠈⢌⡀⠎⣁⠊⢄⠒⠠⠁⠌⡐⠠⠁⠌⡀⢂⠠⠁⠄⠂⠀⠄⠂⠁⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠠⠀⠈⠀⢀⠠⠐⠀⠠⠀⠐⠀⡀⠈⠀⠄⠀⠄⠀⡁⠀⠂⢀⠂⢀⠐⠀⠄⠐⠈⡀⠐⠠⠐⠈⠠⠀⡁⠄⢀⠂⠁⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠠⠁⠌⠄⠀⠠⢁⠂⠀⠀⠀⡁⠂⠄⠂⠄⠌⡈⠐⠠⢁⠂⠤⢈⡁⠎⢠⠐⡈⠤⠘⡠⢈⠡⠌⡐⠠⠁⠌⡐⠠⠀⢂⠐⢀⠂⠁⡀⠂⠁⠀⠄⠀⡀⠁⠀⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⠠⠀⠀⠀⠄⠀⠐⠀⡀⠄⠐⠀⡀⠂⠀⠂⠀⠄⠁⠠⠀⠂⠠⠈⡀⠌⠀⡐⠈⡀⠂⢁⠂⡁⠄⠂⠄⠂⡈⠄⠠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠈⠀⠀⠐⠀⠀⠄⠁⠄⠂⠄⠀⠂⠄⠡⢈⠐⡈⠐⠠⢉⠐⠠⢈⡐⠄⡐⠨⠄⢂⠅⠢⡑⢠⠁⠢⠐⠠⠁⠌⡐⢀⠂⡁⢂⠈⠠⠐⠀⠄⠂⠁⡀⠂⠀⢀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⡀⠠⠀⠀⠀⠀⠐⠀⡀⠈⠀⠄⠀⠄⠂⠀⠄⠀⡁⠠⠁⠠⠈⠀⠄⢁⠀⠂⠠⠀⡁⠄⠂⠄⠡⠀⠂⠄⢂⠁⢂⠁⠄⠂⡁⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠈⠀⠀⠠⠀⠂⠀⠠⠈⡐⢈⠀⠀⠈⠄⡁⢂⠐⠠⢉⠐⠠⡈⠄⠡⠐⡐⡈⠔⡈⢄⠊⡡⢐⠡⠌⢡⠈⠡⢈⠐⡀⢂⠐⠠⢀⠂⠁⠄⡁⠄⠂⠁⡀⠄⠁⡀⠀⠐⠀⠁⠀⠀⠂⠀⠀ Michael Jackson * First Onchain Collection 9/12 * Legends @ BTC⠀⠀⠀⠀
- 10/12 tx 74f2b9b61d2d79bf0f3ba1f13088fb1c56cf308202afd508b6b88fe4e8b99c74
- Pepe the Frog themed collections:
- "Hiddenpepe" collection. These are present inside HTML comments, and don't show well on ordinals.com. But you can see them by inspecting the HTML code, e.g. at: ../view-source:https://ordinals.com/content/a66a54878d428fc7bdf5758ea3bf2ebe1c76750043c22dc6ff05d7cb5a0c0a37i0.By looking at the short JavaScript code, the page seems to select one plain background color at random, but it didn't seem to work very well, we always get the same color?
- 02 tx 747b4a8a8b112ee1ff1d88982fcad4ea517ad5b079eb8da44bd4dae8a617c48d
- 03 tx a66a54878d428fc7bdf5758ea3bf2ebe1c76750043c22dc6ff05d7cb5a0c0a37
- 04 tx 4353581d19da64ada15a0ff9e8ded380eb5778d036c607e9055d0eb85c10ed65
- 05 tx d45422e6ce033df0895ce3945ce26b25aa4d95ecda835a2504dcaaf6352c20c8
- 06 tx 7650ad0da7f563bd882cd28f88654ac7484b97e63426fda1667bf15da65aad0e
- 08 tx e104fb9c34e75418385f04eb7d92ed16afd45cc244923f5807ed4ca65c8f010f
- 09 tx a5256054de9f80593b9b347072ce6d4a159d70f811de38a9d4a027a229d6c803
- "Pistol Pepe": these simple browser games contain an ASCII art as an HTML comment. The are signed "www.twitter.com/tewz1 tewz.cent.co/" (twitter "Account suspended" as of April 2024).
ANSI art. These can only be viewed on a terminal:
- tx 2a319ec83d8e93cd8003a8d087514a0f775b7314128fbdf4d59aad2f9664ac04: Pepe the Frog with lots of terminal blink on the background, quite cool
- tx 2a96eb44afce6028cbb6c1a639c9e93cf40a58e2bdc97f9d642fa0ec5713507a: "incoming call Satoshi Nakamoto" has the image of a man in suite with some dark terminal colors, pretty cool
ASCII porn:
- tx de57a32fcae4c20c16ebb9782ecc550f199e2f7d3a2149188945b21fcff99177; man drinking with while pulling out his huge dick
Misc:
- tx 9089c4fac49593628e1334bbfe94080819bdac67eac18c9ffece5a2bc235a380: wizard taking a shower
- tx fdf9b82e3177c5404f8251ad26460788fc8b29cc4cbd4951ea5e8438dcce9631: and tx 2031b40ccb3944822be709c9a41f38e10ddf13c577b3f2c4d2046ac73020f6f9 middle finger Unicode art. Both marked "THE MIDDLE 1/15".
Figure 4. THE MIDDLE 1/15. Screenshot taken from ordinals.com/content/fdf9b82e3177c5404f8251ad26460788fc8b29cc4cbd4951ea5e8438dcce9631i0. - tx ed3bd1a0cd8a18743acfd7162649a43b69f25a540fbfe6a2352a612ebfb381e6: JavaScript that generates a demoscene ASCII art animation that looks like a rotating thing
- tx 78240e4691c7f75311a03125567f1e44fc0049db611f0ac554f04f8790e28e24: cute cartoon dog giving wearing a headband and giving thumbs up. The Chinese subtitle reads:which Google Translate translates as:
买海豹胆小鬼
TODO context. Sample hit at: twitter.com/0xTenkito/status/1612939684816031746A coward who buys seals
- tx 3a474f540c1917817fba51d2f9fd647887c8c3cd9687eb8d34ab6787c9e8a7fa: ASCII art of mysterious man typing on his laptop. Satoshi comes to mind. The man's hat contains the following Korean characters;which Google Translate translates as:
진실로같이가요
Let's go together truly
- tx 18b7728f32ff27d410e57e289bca7b8c2bdf7c30a1c572a41acc1a8ff576b6ab: "I Want you BTC Maxis, Ordinal Army Enlist Now"
- tx 2fc46b52e3ab7a1053c4c65a4dc3af6bb7e51eb15cb988294af3a203ad254eed: contains an ASCII art of an Iron Man-like mask with text:But hopefully/presumably the author meant Steganography and not encryption right? Code "Your free GrrCon ticket" comes to mind.
Did you know that within ASCII art an encrypted msg can be inside? All you need to do is decode it. Hence a pictureworthsthousandwords.
- tx 6d1d99ed05a152d59fdef4eb26a4a07a4f81dcd945249639af272504b4e70d27: Bitcoin whitepaper as Markdown, but with some great Unicode art rendition of the diagrams!
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ │ │ │ │ Transaction │ │ Transaction │ │ Transaction │ │ │ │ │ │ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ │ Owner 1's │ │ │ │ Owner 2's │ │ │ │ Owner 3's │ │ │ │ Public Key │ │ │ │ Public Key │ │ │ │ Public Key │ │ │ └───────┬─────┘ │ │ └───────┬─────┘ │ │ └───────┬─────┘ │ │ │ . │ │ │ . │ │ │ │ ──────┼─────────┐ │ . ├───────────────┼─────────┐ │ . ├──────────────┼─────────┐ │ │ │ │ │ . │ │ │ │ . │ │ │ │ │ │ ┌──▼─▼──┐ . │ │ ┌──▼─▼──┐ . │ │ ┌──▼─▼──┐ │ │ │ Hash │ . │ │ │ Hash │ . │ │ │ Hash │ │ │ └───┬───┘ . │ Verify │ └───┬───┘ . │ Verify │ └───┬───┘ │ │ │ ............................ │ ........................... │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌──────▼──────┐ │ │ ┌─▼────▼──────┐ │ │ ┌─▼────▼──────┐ │ │ │ Owner 0's │ │ Sign │ │ Owner 1's │ │ Sign │ │ Owner 2's │ │ │ │ Signature │ │ ...........─►│ Signature │ │ ...........─►│ Signature │ │ │ └─────────────┘ │ . │ └─────────────┘ │ . │ └─────────────┘ │ │ │ . │ │ . │ │ └─────────────────────┘ . └─────────────────────┘ . └─────────────────────┘ . . ┌─────────────┐ . ┌─────────────┐ . ┌─────────────┐ │ Owner 1's │........... │ Owner 2's │.......... │ Owner 3's │ │ Private Key │ │ Private Key │ │ Private Key │ └─────────────┘ └─────────────┘ └─────────────┘
- tx e643b2a25b6df9c1d5b0fad7168677a71b96544707efab16f0cf0266981cbe53: "Dear Luke Dashjr, here’s why I want to join the @TaprootWizards"
- tx 6987171da8a07b365686f3ec25ccc08f731943eecbbebed0c9b0df63b58d69fe: classical painting of a nude female model marked "By Johnny Dollar J$"
- tx 8ae6534ba41e305fedf068696111d5445e90c48cbd18081503e831399f1a11fb: HTML of monkey face with bow tie and pink cheeks. Cute! The HTML code is also arranged in a monkey like pattern.
- tx d6c60f0efc9f3155712775c2a0f4e1d805f000fc50763c440cb575f252de371d: also seen at: www.h17n.art/: HTML with the busts of a few people who strongly criticized Bitcoin: Warren Buffet, "Paul Krugman", "Christine Lagarde" and "Peter Schiff":
., .., , ,.., *,. ,***/,..,/...,. ,.//(////*/#((//(##%#* . . . ,.**&&&&&%#%#%%%%%%###%%%%(//*,. . . ..**/%&@&%&&@&@&@&@@&&&%%%%#%%&%%####/ ... .,,.,(//(&&&&&&&&&&&&&@@&&%#%&(%%##%#%##%%%#((#(* ., /*(*(%&&&&&&&&&&&&@@@&@&&%%%%%%##((########(#((/(//,. * . .,(((%&@&&&@&&&&&&&&&&&@&&&%%#%####%##(((((((#(###((/*****.../ . .,,(%&&&&&&&&&&@@@@@@@@&&&%%#%######(#%#(#(###(((((#((#(#(((//##//*,,, . ,, %%&%&&&&@&&@&@&%#@########%##(((((((#((((#(((#((((((#(#####(//(##(#((// *.. ,.(%&&&&&&&@&&&&%&%%%%&&%&%%%%%%%&&&%%%%%%%%########((#######(#((/(((#%(#(((*. * **%&&&&&&&&%%@%%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%##%##############(#(/##((####(((/,. * .#&&%&&%@&&%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%#%%%%%#######((#####%#(//(((#((##((/((, , .%&%&&%&&%%&&@&&&&&@&&&&&&&&&&&&&&&&%%%%%%%%##%%%##(####(##(#(##%(((*(((###(#(/((/((#, .,&%%&%&%##&&@&&&&&&&&&&&&%&&&&&&&&@&&&&%%%%%%%%#######(####(((####/#/(/(#(((##(/(((((#(/* .#%#%&&&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%#%%%%#######(#####(((##(#(/%/(//(#///(((/(((((((/. *(#%&&%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%#%%#####(##((#((((((((####(/((/((##/((((//(/((((/* ,###%%##%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%#########(#(((((((((((((%##(///*/((#/(#/((/(///(/**. */#%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&%&%#%%#%#########(#(#((((/((//(//#(#(/((/*//(((#(/*,,**** *##%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%#%%########((((((((///(##%(((#/(##,*(/#//((/****,... *(#%%%&&%&&&&&&&&&&&&&&&&&&&%%%&%%%%%#%#%#%%%#%###(/(((/(//(((/%(((/(////*/**//*****,***, ,#&&%%&%%&&&%&&&&&&&&&&%&%%%%%%#%%%%&%&&%&&%%%%###(((/////((###(%(/*/*,/,*,,,******,,,* *.&%&&&&&&%%%%%%%%%%%%%%#&%%%%&%&&%%%%%&&#####((##((((////(/###%(#//.**,***//,....,*. *%&%&&&&&&&&&%#%##%####(%%%&%&&&&%%(#(%%###(#((((/(////(((((/**..,,,**,**,,..,,,,,,* **///(%%&%#%####((#%%#(/((#/(,/(**//**,/%**///(#(/((/**,*.*%((//*/*/,***,,,,,***,,*/ *,///*/((/**,*,**#%/*,/%&&##/**,***,,,*//((((((///.*..*.,.*(////*//*//**(***,,**////***(* *./* ..##(*,,,,, ,,*///##*,*/*,.,*,,,,.**.. .,..*,*/*#((///////////(******,,. .*****// ((.. (((###((###(//,*(#(/*/*//*//(//(((((((#####(#,/%#((///////////******//,,.,,***/* .*.. %%%&%%%%%%####,%&@&%#,/*###(##((###%%%%###%#%./#((//(//******/*****////,**//((/. .#,..%%%%%%%%####%%%&&&%%#(*,/#%%%%%%%#####%%%%&&%.#((///////***********////,**/((*, ,@,#%%%%%%&&&%%%&&&&&%#####(*(#%&&&&&&&&&&&%&%/#///////***************/*/**/(/*./, ((,/(%%###/*/%&&&&%%##(##%%%%//#%#((##/#//////(((((////****************,,,***(/ .#%%%&&&&%%(%&&&&&&%##(#%##%((#%&%%%&&&&%%%%###((((////*********///***(/////(( #%%&%&%%%#%&&&&@&%%%###%%##(#(*,//###%#######((((//////****//*///****(//((#(, ,###%%#(//%%%%%%%#(//(((///**,./(//*/(((((((((//////**/*****/********.//((/* /((((/*,.///(///*,,. ..,*((##((/**//////***,,,,**************,,.,,,,*/ ////*,.,(##(/*,, .,*///(##(((//////(***,,,,..,*////******,,,,,,,,,,////. ((**,,,*/(((((//**///((((((((//////******/*,//(//(///****,,,,,,,,,,*////*,. (#####((//*/((((((((((////*/*,,,,,,,**//##(((////(/*,,,,,,,,,,,,,//////*... (#%%%%#(##/*/(///***,,,,.. .,,**/**/#%%##(///*///*,,,,,,,,,,,*///////,,*. .##%%##%#%###(//////#%#(###(/////(#%#%##(///**//*,,,,,,,,,,,////((//*** .. .... (###%##((#####(#(((((((/*////##%%#(##(///*,*//,,,,,,,,,,*/////((//// . .. .. . .... (##%%%((((#(((/(((/((((//(((#(%##(#(/***,*//,,,,,,,,,**/////(///(. . ......... .. .... .......,#%&%#((((((#/(((#(((//###%%((#(/((*,,,***,,,,,,.,****///////(/ .......... ............. .,...,......(%%%%%#%%%%%%%####%%#%%%###(//**,.,,*,,,,,,,,,****///////(( .. ... .......... .............. .............../%%%#%##%######%###%###////,,,,...,.,,,,,.**,**/////((((. . ............... .............. ...........,,......############(##(#(/****,,,...,.,,,,,,,*,,,**////((//* ................. ............... ......................((#((((/////***,,,,.,,.,.,,,,,,,,,,,.,,*///((///* ..................... ................ .............................,*,,,,,,,,,,,,,,,,*,,. .,,,,,,,*/((((/*** ...................................... ............................ .#&%%%%%%#/,.,,... .,,,,,,,**/((#((/**/,........................ ................. ............................ .(&&&%%%###(*,**/*,,,,,,***/((###(*////.......................... ................. ............................../&&&#* . . ////////(((##%#/////(........................... ...........,...... ............................. ,#,,,,,/ /, ., ,##(####%%%#(((/*/#/............................ ...,.............. ............................ *#****..#, /*. (*, (%%%%##((((///#%(.............................. .................. ............................./%&///*...#*.*(/ .*/.##(((((((#%%&&................,.............. ................... ............................/%@@@#*..,.. . , ((((##%%&&&,....................... . .............,.......... ...........................,/%@@@@%/,..,. ,. . *#%%#%%&&&&&%...................... ........................,..... ..........................,/%&@@#* .#((.....* ,(%&&&&&&@@@@@...............................,................. ...... ..........................,/#&@@*./#,..(/*.*. ,%@@@@@&&&@@@(......,.,...,....,...........,..,........................ .....................,....,/#&&@(*...&(*,...,#(*&@@@@@@@@@@...................,..............,.......,................ .........................,/#%&@*##(#.,,...%(*..(@@@@@@@@&.....,............. ...,.............................,....... .........................,/#%&@%.#*/*..,#%...(*,%@@@@@&&#.,................. . ............... ........................
Small art as part of an ad for something like a collection or service:
- tx e00318a4c0769f641ee62cfd8d55ac671d987244762a34895cc29c6142964dd4: ordinal bears collection header
- tx b0f140eddbe03c98d982524d81ab5beecfee3e135bc658173e38ffd675ca9f08: 999 club
- tx 29a4d4fb8ea570a5e6520c0c6d56bf44d00e5c0028b33f57eb1d2bbda4c467e1: "Bitcoin Bots"
- tx 86747b2b5118dd3c3911f8506818af7f6bf102ecd35f854d796021466bc4b548: "Bad Bunnies" badbunnies.xyz/ ad
- tx 0fc35f856bfd43e0c939100d9a21beccdac8264db81c0927cb681dcd22628dd6: EspressOrdinals
- tx 65bded5452fb0d158da19652afbee41cbc50c01513f3a50cf3540a059ace6e8a: ORDINALIENS twitter.com/ordinaliens
- tx 72c5d96279012faed9c464e75877186abd21c0fe6f5f00e244a7bd606d515b26: inscribeords.com "Inscribe Ords", an inscrption service
- tx 99e90c6f741921cc6740c4b402dbd69f40d3686be06d18aab39561871ad22b16: "immordal" Unicode art
Our algorithm is designed to give a rarity score to tweets based on their visibility and interaction. We take into account metadata such as views, likes, and retweets, and assign a grade to each category. These grades are then used to determine the rarity score of the tweet. We believe that this system will create a more just and equitable online community, where individuals are rewarded for meaningful contributions, rather than for clickbait or sensationalism.
- tx 61ab46f60128c36a0dd9f9503711d38eef8737e88e6b78cad7365a54fdac7aa4: twitter.com/minidogeart "Ordinal Mini Doges"
- tx 9402c3c7f837353e68fae663027e7251b52820bd10dfd3fb57779c3c4bcb291a: Bitkoingz @BitKoingz
For example, a good effect is that many things work pretty well, such as the government. This also helped industry develop.
A bad effect is that they sometimes settle on local minima forever. Examples:If it ain't totally broken, just let it continue forever! See also: Section "History of the University of Oxford".
- as of 2020, they are still using imperial units in everyday life, rather than International System of Units, which was setup by the French, who are much more idealistic, and can therefore can break from such insanity more often.
- the persistence of the insane system of colleges of the University of Oxford
- the incredibly late date of the decimal day in 1971, and that was partly due to the advent of the computer. That one was too much, even for the Brits, or maybe it helped that the greedy financiers were involved
- the British train system as of the 2010's, which is completely not unified, each part operated by a different company with different standards. Private and public unification efforts are ongoing, Trainline being one of the best/only private buy from any line unification approaches.
- Church of England priests can marry, which reduces the proportion of pedophiles. Also women were accepted starting in the 1970's in certain dioceses (non uniform rules as usual, typical of English pragmatism), including for bishop
If you ask for something, and they don't want to do it for whatever reason, they won't say no. They will say "I could do it, sure, no problem" and just never do it, nor explain why they don't want to do it!
And then if you don't understand that this actually meant "no" and push things further, they might eventually say "no", but they might become offended that you didn't understand them at first!
Please just say at least "yes" or "no". And if you're feeling specially nice, say "why no" which helps a lot the asker sometimes, though that's optional since people are entitled to their privacy. Just don't waste our poor foreigners' time with "bhlarmeh"!
Perhaps East Asia is a similar and more severe case of the same problem. But at least in their case it is so obvious that you already expect it.
The polar opposite apparently being Germans and the like.
Why we can't find more bibliography on this?
- www.reddit.com/r/AskUK/comments/ywt98p/why_are_british_people_so_indirect/ "Why are British people so indirect?". Now deleted body with some fixes, bullshit deletion procedure they have:The best comment:I've worked with people from all over the globe, but its when i work Work with British people it's always frustrating.From conversations to communicating what they would like me to do for them in notes. Never direct. Confusing and unclear. When I ask politely what they are asking me to do I get some patronising passive aggressive BS.Most times I don't even have to ask questions or clear things up. I try to make sense of everything, but sometimes I have to ask. In my job its important that I have the exact facts. I need 100% clarity from colleagues, so decisions I make don't come back to bite me on the ass. My clients don't have time for British behaviour like that. I don't have time for that.Why are Brits do indirect and passive aggressive in the workplace?
- www.facebook.com/soverybritish/posts/things-that-mean-no-yeah-could-do-im-easy-really-well-yes-and-no-well-see-maybe-/1497343080313575/
Things that mean "no" by "Very British Problems": - letstalk.voiceprint.global/talking-with-the-brits-the-problem-with-indirectness/ "Talking with the Brits - the problem with indirectness"
How I Faked Being American interview with Jack Barsky
. Source. The former East German spy undercover in the USA says:I had learned to speak English and write it as well as anybody, but I hadn't become an American culturally.My behavior was still very German.Having now learned the difference between the German style and the American style, I have been trying to adjust and soften the way I'm approaching things.Germans are in your face, they will tell you what they think even if you don't ask for it, and they will criticize you at any chance they get.And that was me.Americans will be a little more passive, sometimes passive aggressive, and they wrap everything, every piece of bad news, in some kind of a velvet cloth so it doesn't hurt that much.
Answers suggest hat you basically pick a random large odd number, and add 2 to it until your selected primality test passes.
The prime number theorem tells us that the probability that a number between 1 and is a prime number is .
External 3D view of the Brodmann areas
. Source. Evil company that desecrated the beauty created by Sun Microsystems, and was trying to bury Java once and or all in the 2010's.
Their database is already matched by open source e.g. PostgreSQL, and ERP and CRM specific systems are boring.
Oracle basically grew out of selling one of the first SQL implementations in the late 70's, and notably to the United States Government and particularly the CIA. They did deliver a lot of value in those early pre-internet days, but now open source is and will supplant them entirely.
77822fd6663c665104119cb7635352756dfc50da76a92d417ec1a12c518fad69 Updated 2025-07-14 +Created 1970-01-01
Ouptut 0 disassembles as:The large constant contains an ASCII Bitcoin Core patch entitled
OP_IF OP_INVALIDOPCODE 4effffffff <large constant> OP_ENDIF
Remove (SINGLE|DOUBLE)BYTE
so presumably this is a proof of concept:From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshin@gmx.com>
Date: Mon, 12 Aug 2013 02:28:02 -0200
Subject: [PATCH] Remove (SINGLE|DOUBLE)BYTE
I removed this from Bitcoin in f1e1fb4bdef878c8fc1564fa418d44e7541a7e83
in Sept 7 2010, almost three years ago. Be warned that I have not
actually tested this patch.
---
backends/bitcoind/deserialize.py | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/backends/bitcoind/deserialize.py b/backends/bitcoind/deserialize.py
index 6620583..89b9b1b 100644
--- a/backends/bitcoind/deserialize.py
+++ b/backends/bitcoind/deserialize.py
@@ -280,10 +280,8 @@ opcodes = Enumeration("Opcodes", [
"OP_WITHIN", "OP_RIPEMD160", "OP_SHA1", "OP_SHA256", "OP_HASH160",
"OP_HASH256", "OP_CODESEPARATOR", "OP_CHECKSIG", "OP_CHECKSIGVERIFY", "OP_CHECKMULTISIG",
"OP_CHECKMULTISIGVERIFY",
- ("OP_SINGLEBYTE_END", 0xF0),
- ("OP_DOUBLEBYTE_BEGIN", 0xF000),
"OP_PUBKEY", "OP_PUBKEYHASH",
- ("OP_INVALIDOPCODE", 0xFFFF),
+ ("OP_INVALIDOPCODE", 0xFF),
])
@@ -293,10 +291,6 @@ def script_GetOp(bytes):
vch = None
opcode = ord(bytes[i])
i += 1
- if opcode >= opcodes.OP_SINGLEBYTE_END and i < len(bytes):
- opcode <<= 8
- opcode |= ord(bytes[i])
- i += 1
if opcode <= opcodes.OP_PUSHDATA4:
nSize = opcode
--
1.7.9.4
bitcointalk.org/index.php?topic=5231222.0 discusses what happens if there is an invalid opcode in a branch that is not taken.
Unlisted articles are being shown, click here to show only listed articles.