Reflections on Trusting Trust - nano.garden
The linked paper was pointed out to me during a discussion about trusting
executables built from source. Perhaps this paper is a well-known document in
the hacking community, but I thought it was quite interesting and thought I’d
share it. The document described how the author created a bugged C compiler that
would compile UNIX code in which the “login” command would insert a backdoor. >
The actual bug I planted in the compiler would match code in the UNIX “login”
command. The re- placement code would miscompile the login command so that it
would accept either the intended encrypted password or a particular known
password. Thus if this code were installed in binary and the binary were used to
compile the login command, I could log into that system as any user. The author
also describes strategies to build such bugged compiler in a way that would be
very difficult to detect. The document ends with a moral statement about hacking
with a perspective from 1984 which is also an interesting read.
How can I prove that a downloadable executable is built from the published source?
https://nano.garden/post/3205999
How can I prove that a downloadable executable is built from the published source? - nano.garden
I have forked a project’s source code on GitHub. The program takes a private key
as an input and that key must never leave the client. If I want to share a
pre-built executable as a release it is essential that I can prove beyond
reasonable doubt that it is built from the published source. I have learned
about how to publish the releases by using a Workflow in the GitHub actions such
that GitHub itself will build the project and then repare a release draft with
the built files as well as the file hashes… However, I noticed that the release
is first drafted, and at that point I have the option to manually swap the
executable and the hashes. As far as I can tell, a user will not be able to tell
if I swapped a file and its corresponding hashes. Or, is there a way to tell?
One potential solution that I have found is that I can pipe the output of the
hashing both to a file that is stored and also to the publicly visible logs by
using “tee”. This will make it such that someone can look through the logs of
the build process and confirm that the hashes match the hashes published in the
release. Like this:
[https://nano.garden/pictrs/image/9f902e0c-6ac7-4413-b2c7-85e9139558ae.png] I
would like to know whether: - There is already some built-in method to confirm
that a file is the product of a GitHub workflow - The Github Action logs can
easily be tampered by the repo owner, and the hashes in the logs can be swapped,
such that my approach is still not good enough evidence - If there is another,
perhaps more standard method, to prove that the executable is built from a
specific source code.
Canvas for Lemmy is available! Let's create an XNO flag!
https://nano.garden/post/3196840
Canvas for Lemmy is available! Let's create an XNO flag! - nano.garden
Canvas is available for Lemmy! This is similar to reddit’s /r/place. Each user
gets to place a pixel on a canvas. The pixels are refreshed every 30 seconds.
The website with the canvas is: https://canvas.toast.ooo/
[https://canvas.toast.ooo/] To log-in, you simply provide your instance’s name
and your username, and you get a code to log-in. I have made a template for
making an XNO flag. You can reach it by clicking here
[https://canvas.toast.ooo/#x=951&y=476&scale=10.35&template=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAXgAAAHVCAYAAAD7H%2BCWAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm%2B48GgAAIABJREFUeJzt3WmUZXV97%2F%2F3rnNqnrq6uqvnouemmQSRiAIiIihgIqLEgBoTriH5kxuVDESNhChkQpMbFUkuKv5VRK8YpjCIbYPMIDRD09VjdVV1zfN0qs6pOtO%2BDwqzzNPPdl3u%2Bt3Pay2Xjz5899n7tz%2FVVQ%2B%2BJ4K6LihVI0llgY1QirR8ZQSFWMsCpBegOKNlK6ohAkqL4uwYiuLnBkhFUBI%2Fe6oKymWIi1o%2BXYZihZYFSKehKM5OVUEpr89OlaEkXnuUhooV%2Bn2vrIBCgmeeBsTbRgqIgfIbMPuX80titgKIyxCL9z1dgOKkOByoTENBfVcqoVjQZyc5r0Sv58Uzl1pMQ7EK8mu1%2F0BVD5RTetFFZVhMaVkAYlgUrz3N0qGTb%2F6APhugehgW12jZdBbKdfrLHvXC4noxDMQTkG%2FTslXTkF%2Bhz65OcO0VQCqGgvjMUzGI%2Fx74T2q%2BkqXnrZZsDCT4uUpVgnwlS%2B%2BZel7JJ3vXKiZgUTyvFVOwuFKfneS8RkDVMCyu1vJVAwn%2BFWdmZv83c8GbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBiqB2Vt%2BomC4R0QBlcZtk0hWm6QLEGS0bVS5t2ENcBZpKQUld7Qek0lASP3xF5dK6YHW1YKoCSvJqv2QrfxOvC05y31MQN%2BtbDSshzuvrgqN0TKxuXk2xdN3qdu3E71qCfAoox8h3Ll2CWFwLDpCqhJL6nr%2BR5zUijmugqK4VL0csPTV1ZW%2BBs29Ks%2FoU7dHt%2B3GZkz6k%2FxZx%2BOE5tl%2FUIGVHO6CmuUzTem1%2B5yMDbH3POikL0PWzYTa%2FW1sDOro%2FS21LHY3ituED9%2FWy8%2F3tWhjoeXKCjee0itlpNp6zTJ598MFejr9Eu%2FbcFEz3xawRz%2Bue22NOv0ov%2BCMPw7aLtOyxJ6FlMzSJR%2B7oz2DLu7UswNHdsOV8LTu6H%2BpaoWGVlj94f47jf6tWCwP77prgpMu187rvrilOurxFnp3kvBZycN%2BHS%2Bj9LO9CNzOz%2F8u54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAhWxtGRaXIEaxWx8H9Su0PKZgZhGfeNulBmKt%2B%2FYOqhkszMTNcVyKWpqacsp%2Bb7uroZs1ao5JQvA%2FGAbDWu0xeTZqTSVNSWqm7Q90TO9aRrX6MvBZwfLNK6blLLzQ400bxB3%2BAMzfStp2qB97sXpiGK%2Bivo27bxOHolZvlVfFzzTF8srnjODEdWNMek6LT8%2FBo3aduql%2BUP6ut%2FcJKTrFqmqk%2Faip%2BZHKrZu2zKhDYfJge6m5es2zSrZwa6DjZn6TUnO6xoaxGdeLkYcviMijtUzF0fo3yCw5OybYPUpWrbrMdh8njw6te9%2FlYsH7pB%2BC%2Bns7GLfvgPlSy%2B9RMq%2F%2FdI%2FHXi28jz9p1PH3QVOvKxSyo4eiKldFsllcfC%2BEse%2FX90xDfvuynLS5VrTJN0Hf%2BihLDsu1mZP9UA%2BA6tO1ma%2FdDu8%2BSotC7DvR3DSb2vZ0X1Q3QLN4pE78ghse4%2BWBejcFbP1Aq1oRvfH1LVG6g%2BIdWO7e%2Ft%2F%2Fi%2Fy9xd8%2B9vfn%2Fj93%2F%2BItA%2F%2Bik98ZuqHM2fp%2B%2BAPP1hi%2ByXau7a0D14eDf4TjZlZsFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoNKJ%2Fwu5maVVpIrFBFmAwkLU3X1Mivb3DzI7m2FqalrKF4uFNPG8lAWgXKggL%2BaL2YhcGSrEx1coIM8GKBUiOV9arEj0zBfmUkz3atm5ASjF%2Bpkrl5Pdt3Ks5wsLUJHT8%2BXEzzzBtWehUCvn41KhUn1PAcbGJlJqT0xNTqUpJbhvC%2FMV8nktLuhzX5e84POZpaJWZCf1LFCqqIy2fOKerDZ7ouL%2Fe%2FMiURRJO9m3NBfSH39HUZsN%2FMneuZp46BVxn%2FsANK%2BPSFVpwxdmYgZfXtTCQHG%2ByNAr2mef6Y9Ytkm%2Bb1CspVwQoyVYzMCCWBalGA7er2UBZoeg%2B%2BdadnEWSkVo3azlJ7tiiPRd9hNHy1Q3Sd8hEM30xZ%2B5ojFet7Yonfef%2FTRX%2BcADj8hn5vPf2VPxmUfKWr7jYA3HSZuGl8QF5PNa1r%2By4ZeSF3zzeli%2BVcsOvqJnAcaOEC%2Ffou0Gr2rgvHetLn%2Fog%2B%2BT%2Fkw1OTk19cd%2F%2BFH5yX%2Fym68U4uPOSrIPHnkf%2FGRngY1n12phgHiO487SPntcnqZ1S6M8evxgzPItWjZKLf2DpHWblp8dhE3nalmAIw%2FDtou07Nzw0g%2BItadp%2BflR2HGJlgXYd1eJjWdXS9nR%2FfO%2F%2F9EP1G%2Fbpj23ydGh8Y997MMrpDBw1ddfmoiXb2mSwpW1Bdrfpo6G3FQkn9eC9F1E%2F4X%2FBm9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFqgI0FbW%2FlL7xVDbomUzg7DieH32dE%2FMso3aTs3CXLQpPZ5dt2WbtLJtbnyo%2Bncve5e8sPm6rz%2B8oty8Sbr38cxAKq6qi6hZpj27ic6I2hZ9F2l2MmL5Jm3d8FR3mpbNU%2FLsic5V1K%2FQ1t4uzEKqamkDqmLyKCzfrL8vE53QsknLLkxHFHPQtF6bP3YYWsWthkA0fqRcv36ntEi%2FPDNYe%2B0H31RobW2VztyP%2FuPx6nRzW17JAjz9i9dWxDXLpLXgzA6nWXuqvmZ5ujemdauWLxfg1Vvl0fDrWBfc%2FnZYfYqW3X83bBfXpwJ03BOx%2FSJt5e7cCN1DrzV0p98trRFtiR8duPbaP1onzQYmJ8eHb7zx86uV7Mf%2B8HMLdwydVEN1o3ZwigsxO96n3TeAPd%2BO2fbeeinb%2B2yZ9rdJnxuAcgl2XKxlc1Mw3QNrxJW7RLDlXfrLns%2BU2PaelJQd3QfVLdC8Tpsfl0tsvVCbDbTXz%2BV6nv4X6bndcss356%2B44rLm1tbl0uxvPnKwd3%2F6%2FHYpDLC%2BNqb9LO2zP%2FXPyTrq0IMRW87XsoVc4oL3n2jMzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC1TydcGjHbAwo2XnJ2IO%2F0Rfvzo3queLWZjuqaCqVtqvPT3Zu%2Faf%2FunrfdJsoLOzp07NH%2BvqaqB%2FoESqStvpnhloZP9%2F6HvNFzMRPU%2BKe8k7Kpa%2BhkCUGY7pfU77DxTmITMMi1lt9kxvTM%2FT%2BsVnpyrofVa7b7kJyHfENK3X9prPDFTQ%2FZT4okKpOBWp5%2FUXv3ipbnp6Zra2tkY6r1MjQ3VMPN2rZAGY7moHcVNynIeep%2BXRZEb081ou6HNfl7zg207U98ETR2x8hz778E8itr9Xy86NQLkMx50l3fy4uMCf%2Fdkfb9CGw%2FXX3zSs5hfL6fknn2ysp7pRG37ogXl2vE%2Fb5w6w766Yjedoh3ZuBNrPlEeTG4%2FkfNJ98KWFiI1naVmAwmxE%2B9u07NwwzA5FrD1N%2B627uJBn09nN2nA4vqIkn9fX98G3qvvgb991pHeo8Sx9H3wv%2BpnrfYZEz3xxRj%2BvhRy8qI8G%2F4nGzCxYLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQybdJZgahqkHLzo%2FCZFeC2UPQK67yzE0tzT54r5af7OW6v%2FqHvBaGo4e6a59%2Ffo%2BUP9ZzLGKqIU9VnTZ8YaaSyaNaFmD6WMTB%2B7Xs1BH9ngNM90Lvk1p2MQuZ0aW1wYrJI3oWYGYQep%2FSsguzkB1fWnMtze6rYPKofF4HFwaqv%2Fe9Hy0q2Rde2BPlS3G%2BoaFBWpU81N%2FbTFunthoboO%2B5NFPieS9lSfSuzA7o57Wof%2BRfSl7wk136oR%2FpQF55C1BZB63btOxEJ2x%2FLzSu1vL5Rb708soqLQxtAy%2BXP7mQk%2FKb21eXv%2FPWtqrjjlsvzb7o6p%2FncyX5XYcVO2HDGVo2NwMb3q7PLhahdYeYXYR8Blq3a%2FnJXtiQYNVx%2FlF99vw4FBZiWrdJa5rrF0cyD%2F71W1q04fDTn87Nn3XWb1Qr2V%2B8cnDhzx5YqKJS%2FIPBQipNuSAudAdWngDrTteyr3wfkrwrNc3JzmtCyQv%2BuLP1ffDlEmx9jz77yC6ob9Oy82NLN1%2FNV1brWaC2obZ47rlnS9lisVzesGEN27drP9yqGr%2BXz63cKf9wYn5M%2F%2BypqkT3jcoaPV%2FIQVV9gmeeYHbSfFyGqqaY%2Bjap4KsalmXPPfdsueA7Og4vbt68UcqualtRoq5F%2F02%2FurHMyp16wecm9fteUQ0rd8qjmexOdl4T8t%2FgzcwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwCFQHl1%2F9fice0XxJR16rFZ%2FtimjeIs4G50ZgGbbse82NQ1QjVTdrs2b6YJv3aU9Od8Rev%2Bc1BJdvb21dXW1udX7myTVoY%2FXe3P7p8vna9%2FsN9pqeKhlXaZ58%2BFrNcW3kLQGYgpmmdli8XYKoXlrVrs2f7YpZt1q99ujemaY2WLWRhZmiO1s2zSry%2BMF73uavOF5fJQ0fHgfoTT9wp7QX%2F2RPP1z%2FWlVokVaktOJ8bXktze4KeGNbPzGhHTNsJ%2BuyZvli%2B9nIB9t8eE8fq%2FDiNXO4AcUT7mfq64Fe%2BE3HiB%2FXxnbsitl6gZUc7oKYJmjaIs38asfVCLQuUX%2FoWn%2FvcteuU7O7dT2Q3bFjToq4LvvOJY70djeeLLcfSl6y0n6Vl9%2F04YudvyqM5eH%2FE8WK%2BkIOex2Hbe7V8x93Jrv3APbDzA9r7NjcMQ%2Fvq2fZu6QsUqoYeHVDPG8Ctt94%2BfM01V0n5curW%2BceqW5bJ64L331Nm52%2FqPdX7dCSf1%2FEjETsukUdz6KGIHRdr2UIOOr6VoJ%2BJ%2FCcaM7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzAKVTvxfGDsAxUUtm52CgT367JnemL7ntXWa2QmYPgbLNmqzp7qhVNKyQLwwF9Wc8zejUnbmWPWfXLhhsq1tpbRfe3VqquEtq%2FdJswG%2B81JnG5F4dBZm4OCD6miY7o859KD2zEtFmBuA3udiKZ8ZhEMPSVEAZofL9D2n7WRfmEmfuWKysGP1vgUlfnhypPbmm78mP%2FO%2F%2Fe6T1X%2F6g14pX%2Bh8rInW7TEVVdrw7HjE4EtaFmCkA3LSGv2lPfz9L%2Bizp7piXr5DO6%2Bxdkx%2FVfKCX7lT3wc%2F%2FAqsO12fnZuM2PBWLTs3Aqkq2PpuLb%2F%2FbthxkZYFeGmExdWntynRqKI2e%2FXVlzWr%2B%2BDhq73XXfdJeR%2F8d37xWeT7Hpeg%2Fe3qaDj0gL6fu5CD7kdj2s%2FUXrjMQJkdF%2Bu%2F9e7%2F9xwbzpT2uTM3zHV%2FuLb6A5deIn1DzQ03%2FP3Addf9ibwP%2Fov3HBteXH36ainc%2F0qBLe%2BK5H3wB%2B6BtW%2FWsgDFnP79BaP7Yf0Z%2Buz5kYgd79OyhRx03aXPxn%2BiMTMLlgvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLVPJtkoMvL63eVcxPwqt36rMX56HnKS27MAWzA9BTo%2BUzQ%2FrsX85%2F9c6ClM2NV%2F3RtQfmW1eukNYFjwz0L2tpaZmRZgOMdjRTLmvZsQPIWYDZ%2Fpjux7VtkMUcjB6KWJjV9rBO90Xs%2FYG8wzWaH62u6HlCuu%2FxwlTlT37SHI%2BPTUrP%2FKnnX226%2FPf%2BXH7mub6XW5kY0M7rbG%2BKnqcgXa0Nnx2O6XlKe%2BYA4wehLD62Ui7Zez47oF97SVzD%2FiuSF%2Fza0%2FR1wZOH4U1X6rOP7IKNZ2vZ0Q5Yeyo0bdDy2VF9Niytzd10bqUU7XqUx1JnpJnXNs%2BuLezu%2FYM%2F%2BJi8Lri7u2fi7%2F7u%2BlYl%2B%2BbzPpZ7ecXZtepschOw6VwxOwUNq2HNqdoL13F3zImXyUWzove%2BxdHnv9SsZHfteoy1a9eUTzzxeOm37m8%2F%2BPLAj%2BfPldcFs5qYTedqn%2F3ZW5beFXVd8OJ0lOhdq4j0dcFDe5O957lx%2FdoLOXj5K%2Fps%2FCcaM7NgueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzAKVBmJAXIEaxYzsg%2Bykli%2BXY7p%2Bru95nu2POfqYlp%2FuhtrlUN2pzZ4b1WcDTPfGlEtafrIzZnFugsq6WSWeKw42fvWrt3VJs4HOzqPL1Px8ZnoFU7ukneYAzI3WcuSn2nLvQi6ikEkxL35%2FQWY45uhjJS0M83Pjlep96%2BnprauurmbNmlVZJT88ONBE6TH5mTN1bBMl8bHlpmJ6no7kffBzYzGdP0vQEwMxhbyWjxdjOn%2Bqz54bjencJfZjEaIoJo7V%2BXEaudwB4ohVJ%2Bn74LOjEZvfqY8%2FUojYcp6WPVYJLRuhab2Wnx%2FWZwN0Px7Je80jItadsYLqxhVKvHZsd%2B8nP3n1Zm04DA%2BPTKj55%2FZ2TR%2BeOWuZOpsD9%2Fey7UJtl31uCqb7Ytacop35zFDMlvPk71Co751dUO9b0n3wP3z04EB35XnyM6f7cX0Pf%2F9zERvPSrAPfipi67u1LEDv05G8Dz43EbH1Qn32gfsitl6gZQs52PuvCfqZyH%2BiMTMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlLwZ7z%2FNj8J0r5bNzy%2F9T1XMwfyYll2cgkwNlMtavlTQZwOU8vpnLy5CISvviivmFyu7u49ps4Fsdj41NTUtZfP5fEWiZ14uVMr5QhZKuQRnrhglufZyqVSh3rdMZo7%2B%2FkHq6mq1%2FPR0FZXiewqwmEn2ruazyItry%2BWEPbGo58vFZLOTXHtxQZ%2F7uuQFvzALCzNatiINT%2F%2BzPru%2BDWb6tOzYEUjVQUrcUZ3PwOyAlgXoew4mj2rZ7BQUFhZJ10gLusemu2u3%2FO4d8qk9sXAgtfYb35XyxcxoxV%2B%2BaUCefWvHcE2m%2BwktX1qMmOlJMT8uxdMLk%2BWL656Rf%2BudbJwpfUO8bwcPHqn4%2F1%2BtiKhr0%2FbR940tZ4P4ngJkBqDnCS1bKMIL%2F1OfnV%2BA0f16vrCgX3spB%2BMHE8wuxMwcE3fRa1978KuSF3zrVlh9spbNTcKpH9Nnd%2B6CtW%2FWspOHYeUOfR%2F86D5Yc6qWBRjpgFM%2FomW7HoV1Z1RT3Sj9dIoP3NfL6lO0nerA8Q2zE9dd98lWJfud79w5%2FfGPXynvg7%2Fzqb6JTOv52rUXctD9WIbtFzcq8cr%2BhpH7fvDlVdJs4F%2F%2B5daxT3%2F6GunA7dr1GN8eOFSmaZ32A2bsQIHVJ6ekLCy9q%2Bo%2B%2BMVZ2HGJvg%2F%2BwD2w8wNaFqD3aeR98L3PQPvb9dkH7o3YeamWLeTgvsf02fhv8GZmwXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgYqAZDspN38AGtdq2akeWLFNnz1%2BJGb5Zm0V57EnYdkmqKrTZs%2BNxaw6QVxwzdI2ybYTtHs%2Ffgia182QqluU8lNd1bRs1rLAitzB2pNPOiGnZEf6j9VdfeVFWXX2P33np9UTleula49L%2BVRx8lhV5cpt0rWnZ7pr%2F%2Bj9b5ayAD97rqOmecVaacn32OhYdUffDHH1Mu25zQ6upH65fl4X5yLqV2jZiUPQuG5pPbiikItZsV2%2F9smjsHzL%2F%2FkswNjhmKo6cV1wCbru0Wfz61gXvPZ0WH2Klu15Ejaeo88ulyK2XqBlJw7Btgv0dcEH7o3Y%2FC4tC5CdhC3naw8%2BimLWnbGMamnrLRx6sJdtF8jrgsf3zUw8VnG%2BtDY3xVPTn%2FrU1fLK3Uxmtvfzn%2F9z6doHBoZ49dXXMhdffKE0%2F%2FOf%2F9uRm276K%2FnaV7zj2v6JindpB65hGNYOlVl3mvZb9947y5xypV6S3Y%2Fr64KfvQVO%2FnCSdcHJ3rXpHuR8uibZuuBCNmLH%2B8RsLnHB%2B080ZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXq17AP%2FoP6Pvix%2FTErE%2BxUn%2B6JWbZRy%2BfnYOg5OO58bfZkZ8yyTfq1T3XFtIi77CePQu2yaVLV2m7y7Egty7bIe80Z319PU%2Fu8Ek1lx%2Br%2F%2FMq3SVmAzs6jNVu3bpF2qmcymdT09Gz1hg3rpH30Bw4crNu583h5l%2F0t%2F%2F5i7Xzteu2%2BF%2BaryQxFNKyWPjtzw6tZcbx%2BXicOx9S3afnhvbD%2BLZCq0mfXJNhlPzcKjWu0bHYCapvl0WSnYupatGsvl6D7Dd8Hf5q%2BD36mJ2KbuM8doHOXvg9%2BbgSG98G2C7X8gWzEjou0LEDH3Xq%2B61Fe3we%2FTMoferCXHRfJ%2B%2BApzE9w0oe0N6b3qel%2F%2BIe%2FFt82uOmmL%2F869sFL81%2FfBy9f%2BzefubZ%2FfpW4D35uGGaGyqw7rUXK7%2F1%2BnOhdS1dF8j74qW7Ycn6CffCFiJ2%2FpWUBXvsRnPzbWrb3mWT74A89kGwffMKC959ozMwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwClXyb5GgHLM5p2dwMHLhfnz3dtbRxTVGYh8IsTHZr%2BcWMngXIz%2Bv57ARMHStTXa%2Btel6crWequ6QNh2hxtjpW8%2FOjlS%2B88JI8e3R0vF7Nj42Ns3%2F%2FofTKlSvUfE2Say%2FOTtVRpd63iYjcWKw%2Btyifq4iTnNfsuH5e4yJM90K6Vsvn38B3bW402eyFOT1fyutzX5e84BvWwIqtWnZ4L7Sfqc8ul%2FR8doLqwafK56Z%2FLv0Wc6TUvXjO%2BuXV2nB4eWwwd%2BlZGenEHz5cWbjggnWVW7dulmbfcUd3%2BaMffXNKCgO33fZafPXVWv7ee0fIZrPy7Lm5uZKaz2az5HILsZ5fKCe59t85c3n5iiu0%2B%2FaLX%2Bxh%2BfKt8dat2ncQfPazD2Ya0z9vVLIA%2B2aOFE%2FaMCv1xasV86Vix7%2Bl0mnt1k1P5wrrywcqpTDQNTQTx9kxbSd7ZjimqlbfRT%2FbC5PahmdKRXnsLyUv%2BLrlUN%2BmZVMpPQtQVafn45jW1tU88sjdUvwrX%2Fm38U996o%2FWacPh%2ButvmvniF%2F9KKvjdu58obNiwpnL79m3S7Oeffyl37rlnS1mARx55LK%2Fme3p6C0lmP%2FnkcwtqfmBgiLq6upKa37XrcflzA7z88l752vP5AmvXrolPPFH70o4LLnjn7Be%2B8Fm54G%2B99fbxa665arWSveWWby5cccVl9a2ty6XZN974paHrr%2F8L%2BfsLKs78TJkNZ2k%2FXV67C7a%2BRx0NpYKeL%2BTgtf%2Bpz8Z%2FgzczC5YL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC1QEaDvFl%2BIxWy6PqG%2FV4lOdMcs2J1jFORjTtFbL58aJSMfULhNn90HTBi0LMNMDzRu1bG4KinloXCXOHuDMM087poXh2OH9TcdtP2FWyU4NdDX96ccvlLIAzz33Yv2ZZ75lXsnOzGRS%2Ff39tSeeuFP6AoMnnnim8R3veHtGyQL86w8era9Z2S5d%2B8TYcG2amOaVa6QvQDjcsa81vbxdftfH%2B7sao2Xrykq2NH60gsb1kKrShs%2F0QXOCd224I47XnipdO2P7K2jbqXfUdD8sW6%2FlS0XYd1tMHMvzE64LjiPWnAKrT9Hir3wvYscl%2BvjOXRFbL9Cyox3ENU2RXNL77ybRtb%2FyfT0%2FdhDmhmHTO7X8gft4tnzGRi0MpBcmBsV8qrA4%2FQd%2F8Lvy7JGR0V41PzAwxKuvvpa5%2BOILVyj5Y8f6RpJc%2B2e%2F93L%2FhHrfq4dhZqhM%2BTTtt%2B70xByrzpfXBZNNwaZ3igvdb4etF0BVgzb7wD3J3rXxw7DtQq3rpntjtr5HL%2FhDDyVdF6zPxn%2BiMTMLlgvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQCdcFA8eeXlpfq8iMQffj%2BuzJrpijj2rrNGf7oFyEKnGD6txQzGs%2F0ld5Zkbg2a9r2XIe4gjmRrX8%2FFjM0UcntDC0ze%2BrPj1VGFeyA6nemltv%2FZaUBfjXHz%2FTfNP9fybly8V8BVNHKytWPiLlq2Y669au1a99S2qw8TdSj0r5kexI1UvjMSxM5aXhUz2tid618SMsfX2EIDu51BPpGi2fGYnpflx%2F10oLcHS3tgt%2FfjRKdN9mevVrL2mP%2BlclL%2FjjztL3wb%2F4Ddh0rj67lI%2FY8i4tO9oBNU36l3Z0%2FjRi64VaFmDP7XD6VVp27ODSw1fv%2B4H7Ira8S9qJDvCOhqqJu779j1L%2BO9%2B5c%2FrjH79Snv0PP36td7H1ne1SuJCDUjHDce%2BU5lf0RyPXXPPfxG9ZgXx%2Bsf%2FTn75mvZLdtesxLvzwSgkQAAAYd0lEQVTyoTJN67Tfusv5MpvOTbBbPNbf1cmjSz2h7oNfmIwS9cTgS7DlfO2zD%2B%2BLE923%2FLx%2B7YUcvPI1eTT4TzRmZsFywZuZBcoFb2YWKBe8mVmgXPBmZoFywZuZBcoFb2YWKBe8mVmgXPBmZoFywZuZBcoFb2YWKBe8mVmgXPBmZoFKvk1y%2FCCUilp2MQtDr%2BqzJ7vg8E%2B07NwINLQtrSxWzPTDwEtaFiA3A3t%2FqGUXZqC2Wb7v0fxYXDH88ow2HAaq%2ByrvvffBaSW7%2B7GnUi929EtZgOn%2Bww1MLGj5QjFitifFYe3aCzPHav%2Fkupvla%2B%2FvPly%2FcaM2%2B6WX9lZWjAzEUXZUeuil2YFmDj2sRJdMdsLskJbNDMDR3ZCq0vJzEzFDryZbFzzwsrYuuJCJOPigPJrsqH7tpUV97uuSF%2FyK4%2FW1tVNdsOZN%2Buz5Udh6gZadG4Hh12Ddm7X8TI%2BeBRjZC6f8jpYdO7hU8uL8ODsSFZ%2F862XacPjc526cuPTSS1qV7I8eeHL6lu6d8myqjvSy%2FRJtXXBuCmY2ZVh9ijS%2F2PHvI7d075TXBZ%2BRH%2Bq%2F9NJLpHXB9fV17P3wmvKJJx4v%2Fda95sz%2FNje84SJxXy9L39ugrr3dcztsOV9fF3z4oShRT3Q9CutO00q261E4%2FhJ99qEH9Gsv5PS5r%2FOfaMzMAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLVASUX%2F9%2FJR5z3PugfoWWn%2B6LWbZB3%2FOcGYppXKPlC1mi7FRM8zpt9swAchZgqhtaNmnZ3BSUStCwQsvPDfOFT5y3oIXh1Vf3Vb7pTScVlOyux1%2Bonkqv1XZzA2MDPSxfszGvZIv5XDQ9OZJesXqjdO3j%2FUerVrVvUaIAVGWHoksveIu05Ht8fCKVzeai9vb10j74b93zdOUYbdLnBsiN9dXQtEYLTxyFZe2QqtTys4PQtFbLAkwcJm49XuuJqa6Yls1vTEeVi3DouzFxrM6P08jlDhBHbHirvg9%2B310RJ3xAH9%2B5K0qyD%2F60yXviPc%2FfLv0W85Wv%2FNvApz71R3LDX3%2F9TcM33vj51Up29%2B4nshs2rKnbvn2bNPtv%2FuYf5q6%2F%2Fi%2Fk3eCf%2F%2Fzfxtdf%2FxfSdwmsW%2Fe9%2BKqrPib%2F5njjjV%2BKr7%2F%2BL2qV7Oxshm9963vxtddeI13717%2F%2BzfiP%2F%2FgT8vvyxS%2F%2Bo3ztR44c5cCBw%2FzWb10ktWRTU1P%2BU5%2F6Q2k2wK233j58zTVXSef1llu%2BOX%2FFFZfVt7Yul2bfeOOXeq%2B%2F%2Fi%2B07wAAord%2BBtrP0sJ7%2F1fECe9XRy%2Ftg9%2FxPi1byMHB7yToZyL%2FicbMLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFAueDOzQLngzcwC5YI3MwuUC97MLFDSVr3%2FovcZmDyqZUf2Qc0yffZIB5SkzbGQH%2BLI0D4uueRyKf7aa53LX3hhjzYbGB2dre3uPiZlh4aGKhob65mampbyi4uFlJoF6OjYz%2B233yFlH3jgJ2SzOXn2N77xA%2B655z%2BkbD6fZ2xsiB%2F96G4p39NzjIceekTKAhw40MPhw51SdnZ2nrPPfivnnPM2Kb%2B4uBgleeaTk9Mp9bweO3as4o47fkRjo7bA9Oc%2Ff3ZZS8ttUhaAw%2F8Bvc9p2eluWJjSZy%2FOw%2Fq3atmivNH7PyUv%2BPqV0LJZy86NQn2bPrt2AJrWa9mFOjIr0hUPzbxJy1dFtd%2FvOU7LAgy%2B0rzlY9%2FNKNGK6e6KT7%2F3tfmVK1eVlPzevR3RDTf8o9yy9%2B4r1t471qOF%2Byaje0ZH1dFElZvoqztNC6czsHw4Gk1pa5ZpeC16aOZkLQtQzkbd6pnJTfLIF79c7u8flvbJHzp0pBTHkfzM%2F%2F77z1b99U%2FmpfPKRG99XD8PNdq64Ggwbnz0h%2FqZoW4NbHqnlh3dB20n6bOHXoqZ6tFW%2Fqr%2FeP0VyQu%2BdZu%2BD37iCKwRCxYgM6Tn50aWvjRDzWfHk1373AjxmlMblWg5VZW9%2BurL5H3wURT3XnfdJ%2BX92l9762f1zz5xONF9i2cHIjmfm4LqRlgt5hemkz3zsf0JzuswNT11fPWrfy%2FtdL%2Fhhr8f%2BMu%2F%2FBP5%2BwtuvPfYcLzmVGkfPKTKNLZBwyopHU%2F36M8cYGiPft8L88me%2BUxfxPozxNn6b7q%2F5L%2FBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFKvk2ycE9MNOnZeeGofdpfXZmMKb3GW0V5%2BIsjB%2FW99HPDsT0Pq3NBpjqgcMPD0rZ7HjtvffWzq9f%2F1pBiR85crT%2Bzjvv1mYDjB9ZC7GWnR9f%2Bg4BVSbBfS%2FkllZU5%2Be12VM9UFmvZQEWMvq1L2bIzk%2FH6nM7dqy3NskzL48dqSWb1fJzw2vIrIKaZm34%2FJj%2BngNkp6D%2FRS072Y181gEy%2FTGHHx6SsuViBKzRh%2F86Cn7t6fq64P13Q%2FtZ%2BuzMaET727Xs3AjMjsD6t2j5xZko0bUvzsO2C9dK2dH92UsvvahFXRd89OjR3iuvvExeF%2FyRr7yAfN%2FjWM8C5Kb1%2B17IQc%2FP9fmlon5eAKY69WufG6Z88IHoyisvk87M2NjowJVXXiavC776a88Ms%2F5c7bwO7YXGVfK64KVnnuDMDOzRn1s5n%2By8Zqcitl%2Bk3bdCDvZ9Q5%2BN%2F0RjZhYsF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaAiEi07JmbTByOaVmvpic6Y1q36nueJrpjWzVo%2BPwcT%2B2DNmdrsqZ6Y2uXytUeZwfi0N%2B2U9muPDw%2FUv%2F%2FsbfmGhkZpH%2Fxdu16un6hcm1WyAFN9nWupX6mFM4PQqG1PBZZ2g9ev1O57dhzSdcjndbIzZnmS85rgvOfnYPSgvPY2mjoWf%2BYjb5X3wd%2F10z31TW3rpUX6L7%2F82tq4YXVEqkobPj%2Buv%2BcAU93QsknM9kDLRnk0E50xDau1a48LcOjOmKWeliTdBx%2Bx7jR9H3w%2BE7HtPfr0xR%2Fr%2BbkRmB1Fzh%2FdHbHlfC0LsOeb7Hnoa9J%2B7q9%2F%2FVvzH%2F7wpctWrGiVRt%2F%2F0qd7pxrPl%2FfBU2rQd2TvuwtOulwezaGHInZcrGV7n4HqRlh1spbfl%2FS8ziY4r8OQ0c9rfHR39Hd%2F93l5H3wqddPwjTdq%2BbZt7y6PnfD%2BiKoGbfiBe5Ld9%2B7HYdO5Wrb3mWT74Iu5iJ2XatlCDg7dqf9gw3%2BiMTMLlgvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLVNJtkrD%2FHuh%2BQsuOd0DXk%2Frs0hz0Pq9l4zI01ML8qJbPTerZ1%2Bd3dfVI0ZGR0dTTTz9Pc3OTlB%2FsO7ac4xJc%2B8KM%2FtmLC8nuWzGb4JkNQzGv52f64YVvaFmAsQOQGdGy8yOQ6YP%2FOKjlS1na2x%2FXssCyZfXLfv%2F3P6qNLhWXVjUXxA3V2elkZ6bnCRg%2FrGWnemDgJX326D7ofEzLxkk2uS9JXvCbzoO247Vs%2Fwuw%2Fgx99pGfwrYLtWx2Ap67den%2FFXGZ9o5%2F1rJAS0vrYl9ff42S7Rue4savdUJVvTZ8MV0vf25YWqE6Ib4wkz2QGdJnTx6Bww%2Fo%2BRMu1595ZS2c8H599rEVcNxZWnZ%2BHMaPwHFv0%2FJ9z9G3QfzuA6D%2FwP3VfX39Uvb3PnBevqvruZqmpkYp%2F73DFXGcndDX5q57C6w7XcsefgS2J1hV3LUSNp%2BnZYuLsOuP9dn8Ogq%2BdhnUt2nZqgY9C1CR1vPx63v0V%2B7U8rODHDvYoWWBW2%2B9ffrcc8%2BWvnni6V90lBhuXNptrqhs0D83wJYLYNM7tGzSffAH7kXer93x77CsXf%2Fsx55Mdl4r6xKc1%2FLSD3Q1X5kgCxDBueeeLUWLxVKpvf2jbNu2Rcp%2F76Srkp3X3GSC%2B1ab7L6lq%2FV8IafPfZ3%2FBm9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFqiE2ySjmIEXI2b6tPhMX0xxQV8Dmp2IOfSAli%2FkoJyHQw9J8WimL7755q%2FKe29fffW1urm5uUEl%2B70fPLSMuaaYqFJbGJ0djdh3lxQFYH48Jj%2Br3ffZQTj0oD57ejDmyCPa7PFOWJiFafG8Ls7q5w2WzvuhB8XzmoXxHohL2uypnphiTr%2F2hQw33%2FxV6bweOdJVt3x5y2hra0tRmj0ztEZ9T5fyfZCb0rKzA2%2FceS0VIIpi4lh%2BbgkLPo5Y9xZYfYoW73kyYuM5%2BvjcdMSO92nZuZGlLyrZcbEUj4%2Fujq677pNrteFw6623D19zzVVS%2Fo77nyyy4dKI6kbtwXfcDSdeJkUB6P55xKZ3atljT8Fx2tpZAA7cG7FN3M9d17q0vnXVyVo%2B06%2BfN4D990TsuETLzg1DPov82Y%2FujthyvpYFmPsm6nnfvfvx%2Bfb29cvUdcGf%2Be4rsfqeAtD7NLSLe%2FjfyPNayMG%2B2%2FQfyvhPNGZmwXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFygVvZhYoF7yZWaBc8GZmgXLBm5kFKgK0neK%2FtPkyaDlOy44dgZXb9NnDHTENK8X92gtEA8%2FGtImrjks5%2Fvwj7xjXwvClH728khXiZ%2B95EtadAZU1Wn70UEzbDn0Nad%2Fz0LJJy870Q%2FN6eTRzYzGrTtSuPTcB072QFu9bPgfLElx7bjZm5Vbt2mcGllYd16%2FQZo8fiVmxTX%2Fmg3thrfiuzA6wNT6y%2BIEPvG9Wid%2Fyw2dbF0jL1x6XSxENbVp44nCydcFjh2JWiu9aqQCv3KLPJvE%2BeGDtm%2FV98FGaRPvgMyMRJ39Yy86NUD%2B1L870Piz9FnPDDX8%2F8IUvfHadNhy%2B9Oifw6ZztfDAC0uHrrpRyy%2FMRGw6T8sCDL6CfN%2F33QUnXa7PPnBvxGbx2gs52HMbvPUaLf%2FibfrnBjj6M%2F2%2Bj%2B6D6hZoFo9cuZTsmU92oV%2F7AU5anqq%2B%2BeYvrlTiK1Z8tfe66z7Zrg2H6K2f0ffBP%2Fll%2FXMD5Of1%2B17IJS54%2F4nGzCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQybdJThzRFw5P9UC6Tp%2BdHYWhvVp2YZJSMc%2F99%2F9EWmF6250Pr7z59p%2Fqq5azcxG9z2nZ8iI89zUgJeYXYpra9dWx%2BQw8cbOWLU7C413yaErZmNFD4rWXIJ6Fx%2F9RixcX9SwAhaWNkIqRvZAdQ37m%2BTkYfFnLAhSyCT57nvsoxxVt2trdqJxff%2Fzx26X3FIDJ7iYqxc2rzEP%2FHnk0mZGYgZfEdcF5fe7rkhd8lEJu%2BFQltMhbQInGDsZXbuyRbt7w8Ci%2F8883cPLJO5uU%2FAhr4vjNH9BLsvdZaH%2Bblu15YmlNc1WDlj%2F6aMSyDVoW4LhzYP1vaNnnb9XX9QJ07o7Yer6WLS7AC7fC2%2F67lk%2FyzAAO3qef955HYedl0LRGyx9%2BGLZfpGUBOv4dTvyglh07TLwwEbFBu3dx16OR%2Bp4CXLQtnv%2FQh46rV7Kf%2BExtHLck%2BMfQRKf%2BrhUX5LG%2FlLzgl2%2FW98EvzkK9tCJ6SSrFHXd8Q4ru3v04q1a1sWmT%2BGUlFRFUSWdmSapSz6crobJOz6fSye57ujrBZ09639J6Pnr9L5LyfatKdu1E%2Bn1P1UBVrT6%2FoiLZtUcpPV9ZA8UEZyaV1t9T4LTTTl646qqPagX%2FuduSvStVNXq%2BkNPnvs5%2FgzczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC5QL3swsUC54M7NAueDNzALlgjczC1QElF%2F%2FfyUes%2FE3oX6Fls8MxzSukVdxRtN98Q1%2FcP6Aku3vH6ypqqqK2tpWSCvbvnDb7nVxywZ9jWhmSP%2FsmeGYmuaIylpx9mCi%2B87scEyTmB89FNO2I8HsQX12bgpKpZgG8bxOdca0bNWvfbo%2FZtl6LV%2FIQtfTMTsu0PKzQzFNa%2FVrn%2ByKWb5ZvO%2BTMQuzES0bpXiUGYxvuOqd0nsO8MorrzWeeurJGSX7xVvuW1tetVP%2Fh%2FDsoH7fy0U4%2BN2YOFafWxyhf13HkrNv0tcF9zwJG8%2BRR0d7fxiXD31f%2BvCvrwsun3SS9vAqdvxOHJ%2FyEf2F6X4cNp2rZcf2Q00LNL5Bu8F7n4H2t%2F%2BfzwIcegh2XKxlB15cWnW86mQt%2F%2BJt8JartSzA3h%2FAKVdo2blheOwm%2BM1btPzR3bBF3KMPsOd2OP0qLTt6AChB20la%2FsjDxK%2FcqmWBv%2FqrGyf%2B9m%2Bvb1WyVevPiwtv%2B1P9PT%2F0AOx4n5Yt5OC%2BD8ujwX%2BiMTMLlgvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQ6cT%2FhdH9UFyQotH4oZiB5%2BTRlaVC%2Beabvyrtef72t7%2FbcLD67WkaVmrDc7MRQ69oWYCpHqhp1rLTPdD9KJwmrm%2BdG445%2FHCCveZ9sDAjZntIdN8WMjHjB8RrX4BiGjp%2FIg5PJ7v24qKe3%2F9j2Hmpnp8dSHbthayen%2BqBwV%2FAib8txaPZ4Tg6%2B0b9eyOOPLy8ubl5WsnuWFNV07Xnq9Xq7Fyxkrj%2FF1q4tAjyd3UsSQMDwDox38XKE5pZc4q0a7mG3Gj22S%2BvEmfzP%2F7HrUPXXnvNeiX75JNPcTC%2FE5qkOIx1wJpTtSxAdkLPp2ug%2Fxk9nxmK3rh98M9C%2B9v02YceiuR98IUcHLgHTrlSy794W8JnPq7nO3dB205oEl%2FVJOcNYPBFPZ%2BqhokDcj7ODEWJrr3rMa677pPLlGhb24rp3%2Fu9K2vU0e3v%2BnRvX%2BtvtEvhQg6iimHi8mpx%2FID%2FRGNmFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFigXvJlZoFzwZmaBcsGbmQXKBW9mFqgIGAZSYr7AhvemqV0urbRMz41UXXDOKXlxNkePdlVu2bK5oGSfePyp5nlqK0mJi%2BKKuZh0rb7Ks5CFyjpx9iIsTEODuIizlI1J1SW49hxU1mrZ%2FDxU1cujKc7HpOvFay9Dfg6qmsTZc5Bu0LJL%2BZh0g3bts31QvwZS4obvN%2Fq8EkG6SssnPK9RYS5%2B73lvnVCyXUc6azZv26rtQwcef%2BFwOtu8rSiFS%2FmI1%2F61gjguieNLaaAIqCt7u2g%2FW14XXOy4a%2BTh0nnyumDy%2Bf7DpfO0fb%2BnnrC0I3vtm7XZe78fccpHtCzAvh%2FDSR%2FSsmMH4dl%2FhAtu1PKHH%2F5%2Fd13wnm%2FAmf9dy794G7zlai0LsO%2BuiJMu17IPXwunXK6vCz66O2LL%2BVoWYM834fRPaNnRA1CYg3VnaPmE5zXuejR6uHTeCimcHZ86pGYB6rK9bHmXvi74tX8bhtjrgs3M7L9ywZuZBcoFb2YWKBe8mVmgXPBmZoFywZuZBcoFb2YWKBe8mVmgXPBmZoFywZuZBcoFb2YWKBe8mVmgXPBmZoFywZuZBSqCugkoikWfLpKqSkGs7WqOoyqiWN4HT1yRJipru5bLhWZiIlBXLf9y07KqEpBW2bO0vl%2B9biBKxcQlfTd4os%2Be8L4lvvYk970K0I8rUTomLorXXsnSfYvF4W%2F0eS0jX%2Fuv47ym0tNSNK6oJiovyqOTdBRElIoVUBBf9nQ5DcUc5MUl03RRyjdDUdoHD7UjkNP3wVPdD4vaPngqWDp46qGNAP25J8unWbp2MR%2FXRMmuPUYvuiRZEl57RKL7ligLxFGCa0%2BzdFbVH%2BwJ7zsVJLv2CPld%2B3Wc19L8Mi1bOwW5Fn12dS8savvgiYCqYch7H7yZmf1XLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQLngzs0C54M3MAuWCNzMLlAvezCxQEdR1Qalai6fnIK6GUqWWr6yAQlnLAqRjUNevRqugIvXGrQtOkq9gaTugvDo2wX2DZNeecNUxqRjeqFXHSVbmJs2nWVq5q74u%2F8%2Bf10ExWwnFBA89VYaS%2Bg%2Fp6PW8%2BNlTi%2F8bGoCvCfbSJwYAAAAASUVORK5CYII%3D&ox=940&oy=450&tw=23.5&title=nano&convert=nearestCustom].
In the settings there is a button that allows you to toggle the tample on/off.
You can use that button to make sure that you are placing the pixel in an
unoccupied spot.
[https://nano.garden/pictrs/image/cf84387b-856f-4274-b74a-866006e00efe.png]
New update: The nano.garden faucet!
https://nano.garden/post/2812654
New update: The nano.garden faucet! - nano.garden
I’m running a little experiment… The nano.garden faucet! To participate: -
Associate your nano address with your account in your profile settings - Make
comments For every comment the faucet should deliver 0.01 XNO to your account!
There is a cooldown period of 2 minutes between comments and a maximum amount of
nano per account set to 0.5 XNO every 24 hours. This is a very alpha version…
Let’s see how it goes ;-) The faucet address is:
nano_1ex1zqsdyqc3heiifc9sqc8pd8zmamkp3awgd5gwfejx9teqownw5fxrhgg5
It is now possible to associate a nano address with your nano.garden account!
https://nano.garden/post/333678
It is now possible to associate a nano address with your nano.garden account! - nano.garden
If you go to your profile settings, you will see the field “Nano Address”. This
field will allow you to fill in a public nano address that follows the standard
format (nano_[60 alphanumeric characters]). The current behavior is the
following: If a profile has an associated nano address, an XNO button appears in
their profile, next to their comments, and next to their name in post listings.
Clicking on that button will open a new tab to nano.to/nano_address, which
provides you with the address and a QR code to send a tip to that address. If
you visited nano.garden before this change, it may be necessary to delete the
site’s saved history/cache for the changes to be visible.
---------------------------------------- The code changes can be pulled from
github and compared to the 0.18.3 tag: lemmy-ui
[https://github.com/nanogarden/nanogarden-lemmy-ui/tree/ng-0.18.3], lemmy
[https://github.com/nanogarden/nanogarden-lemmy/tree/ng-lemmy-0.18.3]
New instance: nano.garden - nano.garden
I have set up an instance to host an unofficial community centered around the
cryptocurrency Nano (XNO): https://nano.garden [https://nano.garden] The purpose
of the instance is to have a space in the lemmyverse to discuss the Nano
cryptocurrency project and the community projects being built around it. I want
to play around with the integration of nano into the fediverse, but I don’t want
to do this in an invasive manner, so I’ve set up an instance to try to build
some of these tools directly into the UI without inconveniencing others. Anyone
else who needs an instance to try out their own nano-related inventions is more
than welcome to try them out here. You may consider it a nano-playground in the
Lemmyverse. I chose Nano for this because I know that there are many open source
projects related to ‘tipping bots’ and faucets, transfers are very fast and
free, and the community that I’ve encountered is nice. I also found out that
there is already a nano tipping button implemented in a mastodon instance, and I
may draw some inspiration from that: https://xno.social/home
[https://xno.social/home]