From 81ea42f0cc99e4a909c4eda506c54ee569d012a3 Mon Sep 17 00:00:00 2001 From: t4sk Date: Sun, 20 Oct 2024 21:51:02 +0900 Subject: [PATCH] Updates --- 404.html | 2 +- abi-decode/index.html | 2 +- abi-encode/index.html | 2 +- app/airdrop/index.html | 2 +- app/assembly-bin-exp/index.html | 2 +- app/bi-directional-payment-channel/index.html | 2 +- app/create2/index.html | 2 +- app/crowd-fund/index.html | 2 +- app/deploy-any-contract/index.html | 2 +- app/dutch-auction/index.html | 2 +- app/english-auction/index.html | 2 +- app/erc1155/index.html | 2 +- app/erc20/index.html | 2 +- app/erc721/index.html | 2 +- app/ether-wallet/index.html | 2 +- app/gasless-token-transfer/index.html | 2 +- app/iterable-mapping/index.html | 2 +- app/merkle-tree/index.html | 2 +- app/minimal-proxy/index.html | 2 +- app/multi-call/index.html | 2 +- app/multi-delegatecall/index.html | 2 +- app/multi-sig-wallet/index.html | 2 +- app/simple-bytecode-contract/index.html | 2 +- app/time-lock/index.html | 2 +- app/uni-directional-payment-channel/index.html | 2 +- app/upgradeable-proxy/index.html | 2 +- app/write-to-any-slot/index.html | 2 +- array/index.html | 2 +- assembly-error/index.html | 2 +- assembly-if/index.html | 2 +- assembly-loop/index.html | 2 +- assembly-math/index.html | 2 +- assembly-variable/index.html | 2 +- assets/{index-CGzsdTqa.js => index-BnprhjMa.js} | 2 +- bitwise/index.html | 2 +- call/index.html | 2 +- calling-contract/index.html | 2 +- constants/index.html | 2 +- constructor/index.html | 2 +- data-locations/index.html | 2 +- defi/chainlink-price-oracle/index.html | 2 +- defi/constant-product-amm/index.html | 2 +- defi/constant-sum-amm/index.html | 2 +- defi/dai-proxy/index.html | 2 +- defi/discrete-staking-rewards/index.html | 2 +- defi/stable-swap-amm/index.html | 2 +- defi/staking-rewards/index.html | 2 +- defi/uniswap-v2-add-remove-liquidity/index.html | 2 +- defi/uniswap-v2-flash-swap/index.html | 2 +- defi/uniswap-v2-optimal-one-sided-supply/index.html | 2 +- defi/uniswap-v2/index.html | 2 +- defi/uniswap-v3-flash-swap/index.html | 2 +- defi/uniswap-v3-flash/index.html | 2 +- defi/uniswap-v3-liquidity/index.html | 2 +- defi/uniswap-v3-swap/index.html | 2 +- defi/vault/index.html | 2 +- delegatecall/index.html | 2 +- enum/index.html | 2 +- error/index.html | 2 +- ether-units/index.html | 2 +- events-advanced/index.html | 2 +- events/index.html | 2 +- evm/memory/index.html | 2 +- evm/storage/index.html | 2 +- fallback/index.html | 2 +- first-app/index.html | 2 +- function-modifier/index.html | 2 +- function-selector/index.html | 2 +- function/index.html | 2 +- gas-golf/index.html | 2 +- gas/index.html | 2 +- hacks/accessing-private-data/index.html | 2 +- hacks/block-timestamp-manipulation/index.html | 2 +- hacks/contract-size/index.html | 2 +- hacks/delegatecall/index.html | 2 +- hacks/denial-of-service/index.html | 2 +- hacks/deploy-different-contracts-same-address/index.html | 2 +- hacks/front-running/index.html | 2 +- hacks/hiding-malicious-code-with-external-contract/index.html | 2 +- hacks/honeypot/index.html | 2 +- hacks/overflow/index.html | 2 +- hacks/phishing-with-tx-origin/index.html | 2 +- hacks/randomness/index.html | 2 +- hacks/re-entrancy/index.html | 2 +- hacks/self-destruct/index.html | 2 +- hacks/signature-replay/index.html | 2 +- hacks/vault-inflation/index.html | 2 +- hacks/weth-permit/index.html | 2 +- hashing/index.html | 2 +- hello-world/index.html | 2 +- if-else/index.html | 2 +- immutable/index.html | 2 +- import/index.html | 2 +- index.html | 2 +- inheritance/index.html | 2 +- interface/index.html | 2 +- library/index.html | 2 +- loop/index.html | 2 +- mapping/index.html | 2 +- new-contract/index.html | 2 +- payable/index.html | 2 +- primitives/index.html | 2 +- sending-ether/index.html | 2 +- shadowing-inherited-state-variables/index.html | 2 +- signature/index.html | 2 +- state-variables/index.html | 2 +- structs/index.html | 2 +- super/index.html | 2 +- tests/echidna/index.html | 2 +- transient-storage/index.html | 2 +- try-catch/index.html | 2 +- unchecked-math/index.html | 2 +- user-defined-value-types/index.html | 2 +- variables/index.html | 2 +- view-and-pure-functions/index.html | 2 +- visibility/index.html | 2 +- 116 files changed, 116 insertions(+), 116 deletions(-) rename assets/{index-CGzsdTqa.js => index-BnprhjMa.js} (99%) diff --git a/404.html b/404.html index d0a394045..a48036075 100644 --- a/404.html +++ b/404.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/abi-decode/index.html b/abi-decode/index.html index d0a394045..a48036075 100644 --- a/abi-decode/index.html +++ b/abi-decode/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/abi-encode/index.html b/abi-encode/index.html index d0a394045..a48036075 100644 --- a/abi-encode/index.html +++ b/abi-encode/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/airdrop/index.html b/app/airdrop/index.html index d0a394045..a48036075 100644 --- a/app/airdrop/index.html +++ b/app/airdrop/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/assembly-bin-exp/index.html b/app/assembly-bin-exp/index.html index d0a394045..a48036075 100644 --- a/app/assembly-bin-exp/index.html +++ b/app/assembly-bin-exp/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/bi-directional-payment-channel/index.html b/app/bi-directional-payment-channel/index.html index d0a394045..a48036075 100644 --- a/app/bi-directional-payment-channel/index.html +++ b/app/bi-directional-payment-channel/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/create2/index.html b/app/create2/index.html index d0a394045..a48036075 100644 --- a/app/create2/index.html +++ b/app/create2/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/crowd-fund/index.html b/app/crowd-fund/index.html index d0a394045..a48036075 100644 --- a/app/crowd-fund/index.html +++ b/app/crowd-fund/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/deploy-any-contract/index.html b/app/deploy-any-contract/index.html index d0a394045..a48036075 100644 --- a/app/deploy-any-contract/index.html +++ b/app/deploy-any-contract/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/dutch-auction/index.html b/app/dutch-auction/index.html index d0a394045..a48036075 100644 --- a/app/dutch-auction/index.html +++ b/app/dutch-auction/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/english-auction/index.html b/app/english-auction/index.html index d0a394045..a48036075 100644 --- a/app/english-auction/index.html +++ b/app/english-auction/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/erc1155/index.html b/app/erc1155/index.html index d0a394045..a48036075 100644 --- a/app/erc1155/index.html +++ b/app/erc1155/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/erc20/index.html b/app/erc20/index.html index d0a394045..a48036075 100644 --- a/app/erc20/index.html +++ b/app/erc20/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/erc721/index.html b/app/erc721/index.html index d0a394045..a48036075 100644 --- a/app/erc721/index.html +++ b/app/erc721/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/ether-wallet/index.html b/app/ether-wallet/index.html index d0a394045..a48036075 100644 --- a/app/ether-wallet/index.html +++ b/app/ether-wallet/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/gasless-token-transfer/index.html b/app/gasless-token-transfer/index.html index d0a394045..a48036075 100644 --- a/app/gasless-token-transfer/index.html +++ b/app/gasless-token-transfer/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/iterable-mapping/index.html b/app/iterable-mapping/index.html index d0a394045..a48036075 100644 --- a/app/iterable-mapping/index.html +++ b/app/iterable-mapping/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/merkle-tree/index.html b/app/merkle-tree/index.html index d0a394045..a48036075 100644 --- a/app/merkle-tree/index.html +++ b/app/merkle-tree/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/minimal-proxy/index.html b/app/minimal-proxy/index.html index d0a394045..a48036075 100644 --- a/app/minimal-proxy/index.html +++ b/app/minimal-proxy/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/multi-call/index.html b/app/multi-call/index.html index d0a394045..a48036075 100644 --- a/app/multi-call/index.html +++ b/app/multi-call/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/multi-delegatecall/index.html b/app/multi-delegatecall/index.html index d0a394045..a48036075 100644 --- a/app/multi-delegatecall/index.html +++ b/app/multi-delegatecall/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/multi-sig-wallet/index.html b/app/multi-sig-wallet/index.html index d0a394045..a48036075 100644 --- a/app/multi-sig-wallet/index.html +++ b/app/multi-sig-wallet/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/simple-bytecode-contract/index.html b/app/simple-bytecode-contract/index.html index d0a394045..a48036075 100644 --- a/app/simple-bytecode-contract/index.html +++ b/app/simple-bytecode-contract/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/time-lock/index.html b/app/time-lock/index.html index d0a394045..a48036075 100644 --- a/app/time-lock/index.html +++ b/app/time-lock/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/uni-directional-payment-channel/index.html b/app/uni-directional-payment-channel/index.html index d0a394045..a48036075 100644 --- a/app/uni-directional-payment-channel/index.html +++ b/app/uni-directional-payment-channel/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/upgradeable-proxy/index.html b/app/upgradeable-proxy/index.html index d0a394045..a48036075 100644 --- a/app/upgradeable-proxy/index.html +++ b/app/upgradeable-proxy/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/app/write-to-any-slot/index.html b/app/write-to-any-slot/index.html index d0a394045..a48036075 100644 --- a/app/write-to-any-slot/index.html +++ b/app/write-to-any-slot/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/array/index.html b/array/index.html index d0a394045..a48036075 100644 --- a/array/index.html +++ b/array/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assembly-error/index.html b/assembly-error/index.html index d0a394045..a48036075 100644 --- a/assembly-error/index.html +++ b/assembly-error/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assembly-if/index.html b/assembly-if/index.html index d0a394045..a48036075 100644 --- a/assembly-if/index.html +++ b/assembly-if/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assembly-loop/index.html b/assembly-loop/index.html index d0a394045..a48036075 100644 --- a/assembly-loop/index.html +++ b/assembly-loop/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assembly-math/index.html b/assembly-math/index.html index d0a394045..a48036075 100644 --- a/assembly-math/index.html +++ b/assembly-math/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assembly-variable/index.html b/assembly-variable/index.html index d0a394045..a48036075 100644 --- a/assembly-variable/index.html +++ b/assembly-variable/index.html @@ -28,7 +28,7 @@ gtag("config", "UA-133759045-1") - + diff --git a/assets/index-CGzsdTqa.js b/assets/index-BnprhjMa.js similarity index 99% rename from assets/index-CGzsdTqa.js rename to assets/index-BnprhjMa.js index 64f7788d0..15102c69a 100644 --- a/assets/index-CGzsdTqa.js +++ b/assets/index-BnprhjMa.js @@ -64,7 +64,7 @@ Error generating stack: `+e.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function rc(s){return s===void 0&&(s=""),new URLSearchParams(typeof s=="string"||Array.isArray(s)||s instanceof URLSearchParams?s:Object.keys(s).reduce((a,n)=>{let l=s[n];return a.concat(Array.isArray(l)?l.map(p=>[n,p]):[[n,l]])},[]))}function Kd(s,a){let n=rc(s);return a&&a.forEach((l,p)=>{n.has(p)||a.getAll(p).forEach(e=>{n.append(p,e)})}),n}const Fd="6";try{window.__reactRouterVersion=Fd}catch{}const Md="startTransition",Go=Hg[Md];function Sd(s){let{basename:a,children:n,future:l,window:p}=s,e=B.useRef();e.current==null&&(e.current=TI({window:p,v5Compat:!0}));let c=e.current,[t,o]=B.useState({action:c.action,location:c.location}),{v7_startTransition:i}=l||{},I=B.useCallback(d=>{i&&Go?Go(()=>o(d)):o(d)},[o,i]);return B.useLayoutEffect(()=>c.listen(I),[c,I]),B.createElement(Nd,{basename:a,children:n,location:t.location,navigationType:t.action,navigator:c,future:l})}var Vo;(function(s){s.UseScrollRestoration="useScrollRestoration",s.UseSubmit="useSubmit",s.UseSubmitFetcher="useSubmitFetcher",s.UseFetcher="useFetcher",s.useViewTransitionState="useViewTransitionState"})(Vo||(Vo={}));var fo;(function(s){s.UseFetcher="useFetcher",s.UseFetchers="useFetchers",s.UseScrollRestoration="useScrollRestoration"})(fo||(fo={}));function xd(s){let a=B.useRef(rc(s)),n=B.useRef(!1),l=Hp(),p=B.useMemo(()=>Kd(l.search,n.current?null:a.current),[l.search]),e=yd(),c=B.useCallback((t,o)=>{const i=rc(typeof t=="function"?t(p):t);n.current=!0,e("?"+i,o)},[e,p]);return[p,c]}const Jd="_component_nqcni_1",zd="_sideNav_nqcni_6",Dd="_main_nqcni_13",Ed="_children_nqcni_21",Xl={component:Jd,sideNav:zd,main:Dd,children:Ed},Qd="_list_1ltry_1",Td="_title_1ltry_6",Ud="_listItem_1ltry_11",_d="_listItemActive_1ltry_18",Ld="_link_1ltry_26",xa={list:Qd,title:Td,listItem:Ud,listItemActive:_d,link:Ld},Od=[{lang:"Armenian",url:"https://pranatech.org/solidity-by-example-hy/"},{lang:"Persian",url:"https://solidifa.ir/solidity-by-example/"},{lang:"Persian",url:"https://siblearn.dev/solidity-by-example"},{lang:"Spanish",url:"https://github.com/lcadafalch/solidity_attacks"},{lang:"Simplified Chinese",url:"https://github.com/Web3-Club/solidity-by-example_Chinese"}],Pd=[{path:"hello-world",title:"Hello World"},{path:"first-app",title:"First App"},{path:"primitives",title:"Primitive Data Types"},{path:"variables",title:"Variables"},{path:"constants",title:"Constants"},{path:"immutable",title:"Immutable"},{path:"state-variables",title:"Reading and Writing to a State Variable"},{path:"ether-units",title:"Ether and Wei"},{path:"gas",title:"Gas and Gas Price"},{path:"if-else",title:"If / Else"},{path:"loop",title:"For and While Loop"},{path:"mapping",title:"Mapping"},{path:"array",title:"Array"},{path:"enum",title:"Enum"},{path:"user-defined-value-types",title:"User Defined Value Types"},{path:"structs",title:"Structs"},{path:"data-locations",title:"Data Locations - Storage, Memory and Calldata"},{path:"transient-storage",title:"Transient Storage"},{path:"function",title:"Function"},{path:"view-and-pure-functions",title:"View and Pure Functions"},{path:"error",title:"Error"},{path:"function-modifier",title:"Function Modifier"},{path:"events",title:"Events"},{path:"events-advanced",title:"Events Advanced"},{path:"constructor",title:"Constructor"},{path:"inheritance",title:"Inheritance"},{path:"shadowing-inherited-state-variables",title:"Shadowing Inherited State Variables"},{path:"super",title:"Calling Parent Contracts"},{path:"visibility",title:"Visibility"},{path:"interface",title:"Interface"},{path:"payable",title:"Payable"},{path:"sending-ether",title:"Sending Ether - Transfer, Send, and Call"},{path:"fallback",title:"Fallback"},{path:"call",title:"Call"},{path:"delegatecall",title:"Delegatecall"},{path:"function-selector",title:"Function Selector"},{path:"calling-contract",title:"Calling Other Contract"},{path:"new-contract",title:"Creating Contracts from a Contract"},{path:"try-catch",title:"Try / Catch"},{path:"import",title:"Import"},{path:"library",title:"Library"},{path:"abi-encode",title:"ABI Encode"},{path:"abi-decode",title:"ABI Decode"},{path:"hashing",title:"Hashing with Keccak256"},{path:"signature",title:"Verifying Signature"},{path:"gas-golf",title:"Gas Optimizations"},{path:"bitwise",title:"Bitwise Operators"},{path:"unchecked-math",title:"Unchecked Math"},{path:"assembly-variable",title:"Assembly Variable"},{path:"assembly-if",title:"Assembly Conditional Statements"},{path:"assembly-loop",title:"Assembly Loop"},{path:"assembly-error",title:"Assembly Error"},{path:"assembly-math",title:"Assembly Math"}],$d=[{path:"ether-wallet",title:"Ether Wallet"},{path:"multi-sig-wallet",title:"Multi Sig Wallet"},{path:"merkle-tree",title:"Merkle Tree"},{path:"iterable-mapping",title:"Iterable Mapping"},{path:"erc20",title:"ERC20"},{path:"erc721",title:"ERC721"},{path:"erc1155",title:"ERC1155"},{path:"gasless-token-transfer",title:"Gasless Token Transfer"},{path:"simple-bytecode-contract",title:"Simple Bytecode Contract"},{path:"create2",title:"Precompute Contract Address with Create2"},{path:"minimal-proxy",title:"Minimal Proxy Contract"},{path:"upgradeable-proxy",title:"Upgradeable Proxy"},{path:"deploy-any-contract",title:"Deploy Any Contract"},{path:"write-to-any-slot",title:"Write to Any Slot"},{path:"uni-directional-payment-channel",title:"Uni-directional Payment Channel"},{path:"bi-directional-payment-channel",title:"Bi-directional Payment Channel"},{path:"english-auction",title:"English Auction"},{path:"dutch-auction",title:"Dutch Auction"},{path:"crowd-fund",title:"Crowd Fund"},{path:"multi-call",title:"Multi Call"},{path:"multi-delegatecall",title:"Multi Delegatecall"},{path:"time-lock",title:"Time Lock"},{path:"assembly-bin-exp",title:"Assembly Binary Exponentiation"},{path:"airdrop",title:"Merkle Airdrop"}],qd=[{path:"re-entrancy",title:"Re-Entrancy"},{path:"overflow",title:"Arithmetic Overflow and Underflow"},{path:"self-destruct",title:"Self Destruct"},{path:"accessing-private-data",title:"Accessing Private Data"},{path:"delegatecall",title:"Delegatecall"},{path:"randomness",title:"Source of Randomness"},{path:"denial-of-service",title:"Denial of Service"},{path:"phishing-with-tx-origin",title:"Phishing with tx.origin"},{path:"hiding-malicious-code-with-external-contract",title:"Hiding Malicious Code with External Contract"},{path:"honeypot",title:"Honeypot"},{path:"front-running",title:"Front Running"},{path:"block-timestamp-manipulation",title:"Block Timestamp Manipulation"},{path:"signature-replay",title:"Signature Replay"},{path:"contract-size",title:"Bypass Contract Size Check"},{path:"deploy-different-contracts-same-address",title:"Deploy Different Contracts at Same Address"},{path:"vault-inflation",title:"Vault Inflation Attack"},{path:"weth-permit",title:"WETH Permit"}],sC=[{path:"storage",title:"EVM Storage Layout"},{path:"memory",title:"EVM Memory Layout"}],aC=[{path:"echidna",title:"Echidna"}],nC=[{path:"uniswap-v2",title:"Uniswap V2 Swap"},{path:"uniswap-v2-add-remove-liquidity",title:"Uniswap V2 Add Remove Liquidity"},{path:"uniswap-v2-optimal-one-sided-supply",title:"Uniswap V2 Optimal One Sided Supply"},{path:"uniswap-v2-flash-swap",title:"Uniswap V2 Flash Swap"},{path:"uniswap-v3-swap",title:"Uniswap V3 Swap"},{path:"uniswap-v3-liquidity",title:"Uniswap V3 Liquidity"},{path:"uniswap-v3-flash",title:"Uniswap V3 Flash Loan"},{path:"uniswap-v3-flash-swap",title:"Uniswap V3 Flash Swap Arbitrage"},{path:"chainlink-price-oracle",title:"Chainlink Price Oracle"},{path:"dai-proxy",title:"DAI Proxy"},{path:"staking-rewards",title:"Staking Rewards"},{path:"discrete-staking-rewards",title:"Discrete Staking Rewards"},{path:"vault",title:"Vault"},{path:"constant-sum-amm",title:"Constant Sum AMM"},{path:"constant-product-amm",title:"Constant Product AMM"},{path:"stable-swap-amm",title:"Stable Swap AMM"}],ot=[{title:"",routes:Pd.map(s=>({...s,path:`/${s.path}`}))},{title:"Applications",routes:$d.map(s=>({...s,path:`/app/${s.path}`}))},{title:"Hacks",routes:qd.map(s=>({...s,path:`/hacks/${s.path}`}))},{title:"EVM",routes:sC.map(s=>({...s,path:`/evm/${s.path}`}))},{title:"Tests",routes:aC.map(s=>({...s,path:`/tests/${s.path}`}))},{title:"DeFi",routes:nC.map(s=>({...s,path:`/defi/${s.path}`}))}],Cp=ot.map(({routes:s})=>s).flat(),lC=Cp.reduce((s,a,n)=>(s[a.path]=n,s),{});function pC(s){const a=lC[s];if(a>=0){const n=Cp[a-1]||null,l=Cp[a+1]||null;return{prev:n,next:l}}return{prev:null,next:null}}const eC=({onClick:s})=>{const a=Hp();function n(l,p){l.preventDefault(),s(p)}return r.jsxs(r.Fragment,{children:[r.jsx("h3",{className:xa.category,children:"Basic"}),ot.map(({routes:l,title:p},e)=>r.jsxs("div",{children:[p&&r.jsx("h3",{className:xa.title,children:p}),r.jsx("ul",{className:xa.list,children:l.map(({path:c,title:t})=>{const o=!!cg(c,a.pathname);return r.jsx("li",{className:o?xa.listItemActive:xa.listItem,children:r.jsx("a",{className:xa.link,href:c,onClick:i=>n(i,c),children:t})},c)})})]},e))]})},cC=({size:s,className:a="",onClick:n})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 20 20",strokeWidth:2,stroke:"currentColor",className:a,width:s,height:s,onClick:n,children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})}),tC="_component_15x91_1",oC="_a_15x91_13",rC="_center_15x91_16",iC="_logo_15x91_21",gC="_header_15x91_24",hC="_mode_15x91_28",IC="_hamburger_15x91_33",aa={component:tC,a:oC,center:rC,logo:iC,header:gC,mode:hC,hamburger:IC},dC=({size:s,className:a=""})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#fff",viewBox:"0 0 438.277 438.277",width:s,height:s,className:a,children:r.jsx("path",{d:"M428.756 300.104c-.664-3.81-2.334-7.047-4.996-9.713-5.9-5.903-12.752-7.142-20.554-3.716-20.937 9.708-42.641 14.558-65.097 14.558-28.171 0-54.152-6.94-77.943-20.838-23.791-13.894-42.631-32.736-56.525-56.53-13.899-23.793-20.844-49.773-20.844-77.945 0-21.888 4.333-42.683 12.991-62.384 8.66-19.7 21.176-36.973 37.543-51.82 6.283-5.898 7.713-12.752 4.287-20.557-3.236-7.801-9.041-11.511-17.415-11.132-29.121 1.141-56.72 7.664-82.797 19.556C111.33 31.478 88.917 47.13 70.168 66.548c-18.747 19.414-33.595 42.399-44.54 68.95-10.942 26.553-16.416 54.39-16.416 83.511 0 29.694 5.806 58.054 17.416 85.082 11.613 27.028 27.218 50.344 46.824 69.949 19.604 19.599 42.92 35.207 69.951 46.822 27.028 11.607 55.384 17.415 85.075 17.415 42.64 0 81.987-11.563 118.054-34.69 36.069-23.124 63.05-54.006 80.944-92.645 1.524-3.423 1.951-7.036 1.28-10.838zm-122.191 84.064c-24.646 11.711-50.676 17.562-78.087 17.562-24.743 0-48.39-4.853-70.947-14.558-22.554-9.705-41.971-22.695-58.246-38.972-16.271-16.272-29.259-35.686-38.97-58.241-9.707-22.556-14.561-46.203-14.561-70.948 0-40.922 12.135-77.466 36.403-109.636 24.266-32.165 55.531-53.959 93.788-65.379-19.795 31.405-29.694 65.379-29.694 101.926 0 34.644 8.564 66.715 25.697 96.223 17.128 29.499 40.446 52.811 69.95 69.948 29.499 17.129 61.565 25.694 96.211 25.694 10.656 0 21.129-.855 31.408-2.57-17.318 20.938-38.307 37.255-62.952 48.951z"})}),CC=({size:s,className:a=""})=>r.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 302.4 302.4",width:s,height:s,className:a,children:[r.jsx("path",{d:"M204.8 97.6C191.2 84 172 75.2 151.2 75.2s-40 8.4-53.6 22.4c-13.6 13.6-22.4 32.8-22.4 53.6s8.8 40 22.4 53.6c13.6 13.6 32.8 22.4 53.6 22.4s40-8.4 53.6-22.4c13.6-13.6 22.4-32.8 22.4-53.6s-8.4-40-22.4-53.6zm-14.4 92.8c-10 10-24 16-39.2 16s-29.2-6-39.2-16-16-24-16-39.2 6-29.2 16-39.2 24-16 39.2-16 29.2 6 39.2 16 16 24 16 39.2-6 29.2-16 39.2z",stroke:"#252519",strokeWidth:12}),r.jsx("path",{d:"M292 140.8h-30.8c-5.6 0-10.4 4.8-10.4 10.4 0 5.6 4.8 10.4 10.4 10.4H292c5.6 0 10.4-4.8 10.4-10.4 0-5.6-4.8-10.4-10.4-10.4zm-140.8 110c-5.6 0-10.4 4.8-10.4 10.4V292c0 5.6 4.8 10.4 10.4 10.4 5.6 0 10.4-4.8 10.4-10.4v-30.8c0-5.6-4.8-10.4-10.4-10.4zm106.8-7.2-22-22c-3.6-4-10.4-4-14.4 0s-4 10.4 0 14.4l22 22c4 4 10.4 4 14.4 0s4-10.4 0-14.4zM151.2 0c-5.6 0-10.4 4.8-10.4 10.4v30.8c0 5.6 4.8 10.4 10.4 10.4 5.6 0 10.4-4.8 10.4-10.4V10.4c0-5.6-4.8-10.4-10.4-10.4zm107.2 44.4c-4-4-10.4-4-14.4 0l-22 22c-4 4-4 10.4 0 14.4 3.6 4 10.4 4 14.4 0l22-22c4-4 4-10.4 0-14.4zM41.2 140.8H10.4c-5.6 0-10.4 4.8-10.4 10.4s4.4 10.4 10.4 10.4h30.8c5.6 0 10.4-4.8 10.4-10.4 0-5.6-4.8-10.4-10.4-10.4zm39.2 80.8c-3.6-4-10.4-4-14.4 0l-22 22c-4 4-4 10.4 0 14.4s10.4 4 14.4 0l22-22c4-4 4-10.4 0-14.4zm0-155.2-22-22c-4-4-10.4-4-14.4 0s-4 10.4 0 14.4l22 22c4 4 10.4 4 14.4 0s4-10.4 0-14.4z",stroke:"#252519",strokeWidth:5})]}),jC=({size:s,className:a="",fill:n})=>r.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1300 1300",xmlSpace:"preserve",width:s,height:s,className:a,fill:n,children:[r.jsx("path",{opacity:.45,d:"M773.772 253.308 643.068 485.61H381.842l130.614-232.302h261.316"}),r.jsx("path",{opacity:.6,d:"M643.068 485.61h261.318L773.772 253.308H512.456L643.068 485.61z"}),r.jsx("path",{opacity:.8,d:"M512.456 717.822 643.068 485.61 512.456 253.308 381.842 485.61l130.614 232.212z"}),r.jsx("path",{opacity:.45,d:"m513.721 1066.275 130.704-232.303h261.318l-130.705 232.303H513.721"}),r.jsx("path",{opacity:.6,d:"M644.424 833.973H383.107l130.613 232.303h261.317L644.424 833.973z"}),r.jsx("path",{opacity:.8,d:"M775.038 601.761 644.424 833.973l130.614 232.303 130.704-232.303-130.704-232.212z"})]});function AC(){const{state:s,setTheme:a,toggleSideNav:n}=ct();function l(){a(s.theme=="light"?"dark":"light")}return r.jsxs("div",{className:aa.component,children:[r.jsx(cC,{size:20,className:aa.hamburger,onClick:n}),r.jsxs("div",{className:aa.center,children:[r.jsx("a",{href:"/",className:aa.a,children:r.jsx(jC,{className:aa.logo,size:30,fill:s.theme=="dark"?"rgb(0, 255, 0)":"currentColor"})}),r.jsx("h3",{className:aa.header,children:r.jsx("a",{href:"/",className:aa.a,children:"Solidity by Example"})})]}),r.jsx("button",{className:aa.mode,onClick:l,children:s.theme=="dark"?r.jsx(dC,{size:20}):r.jsx(CC,{size:20})})]})}const uC="_component_o1tj5_1",yC="_row_o1tj5_8",mC="_bar_o1tj5_13",bC="_to_o1tj5_21",wC="_social_o1tj5_24",kC="_updraft_o1tj5_29",ZC="_telegram_o1tj5_34",WC="_discord_o1tj5_38",BC="_youTube_o1tj5_42",us={component:uC,row:yC,bar:mC,to:bC,social:wC,updraft:kC,telegram:ZC,discord:WC,youTube:BC},dg="/assets/updraft-D5eZlzRj.png",Cg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAyCAYAAAAOX8ZtAAAABmJLR0QA/wD/AP+gvaeTAAADmUlEQVRoge3bT2wUZRjH8c9Ml39S09IC/uFiRBIwabzVE15oiJBwLBcP3npS4E4IBA/EAwmcCInhoCeJNwgQoDGRC8GESMDYhJRyUAQplZa2tBYdD+9suqmsadHO+6J8kzd5Z3Znnt/+9p1ndt593swCKViFV7EWK8vWjpewouyvLLdfLg9rxZKG0ywt39NIOzL8gdE5r42W++uMY6bs/4pJTOARxsr+RHncOO7hbsbjhXzWrNkLBcvxPt5FF97Ga8L+55VR/Ijv8R0u45uM3+d9hoK+gnsFxf+g3S74cD6mrCj4PAHBMdpXRUgLTc35IgGRMduXzYz5OAFxKbSP6p5kpTHtuI22eSem/y4P8UbGaF7u6PXCmDrtgh/q5vTE05IkPcya0x1RSIp0Q1aEy+lhZDEpsirH+tgqEmV9jjdjq0iUt3Ksi60iUdbl6Kw05NatrFlTachnpDPH6kpD7tjBrVscOMCyZZWGXiCrqzcHWlvZv5/r1+ntrTz8POms/rJqZMMGTp7k4kW6uqLJaMLqHB2xVdiyhatXOX48pXzUmQvTmfGp1ejrY2CA3bvDdlyW50grK3Z0cORIyEfbtsVUsjQ9c+ps3MiZM1y4wKZNMRQsS9ecOj09XLvG0aO0VTqrkvDIaWTJEnbtYnAw5KOWliqiPgcjp5HOzpCPrlxh8+bFjrY0R7HYUZ5Tshy/xVYxb4aH2bOH7m4uXVrsaFM1TEvlt04zZmY4dox9+xgbqyrqdN2cdDl9OoyWwcGqI0/nUjVnYIDt28NTfPXGkKQ5IyNhpHR1cfZsTCVTNaF8Iz5PnnDiBHv3hsQbn6kaRmKr0N8fRsuNG7GVNDKcI97XdPMmO3eGR4S0jIHhmhjmjI9z+DCHDjGdVsprIII5p05x8CD371ca9hl4UMODSkOeP19puH/AcI47sVUkys85bsVWkSiDLwoJmtOWZ6H8dCi2ksQYyhir1+dciSolPb5ltnipP6KQFPmaFwWTT+ORUDA5kkMWEvIncTUlw6fZ3OfNgpaCUwnUAcds/QVP/6u1YHnBZwmIjNHOFbOrfJpT8EHBUAKCq2h3i1C9n8/14e+WFLXgPWFJ0TvCkqLXxajn+fd4jJ/wg7Cs6DLOZU1mQ5ua04wi/Am4Fq8Id7lWs4vSVjX0W4W7X17GaZ9zqvriszr19xb++ov9EZ40bD/GVNkfFWYzJ8vjJsp+fWHaJH7BnSzsmzd/AkgxNaTAmykLAAAAAElFTkSuQmCC",GC="/assets/telegram-DMavHjFx.png",VC="/assets/discord-BqSoMD3G.png";function fC(){return r.jsxs("div",{className:us.component,children:[r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:dg,alt:"cyfrin",className:us.updraft}),r.jsx("a",{href:"https://updraft.cyfrin.io",target:"__blank",children:"Cyfrin Updraft"})]}),r.jsxs("div",{className:us.social,children:[r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:VC,alt:"discord",className:us.discord}),r.jsx("a",{href:"https://discord.gg/bt8FK2wkcW",target:"__blank",children:"Discord"})]}),r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:GC,alt:"telegram",className:us.telegram}),r.jsx("a",{href:"https://t.me/smartcontractprogrammer",target:"__blank",children:"Telegram"})]}),r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:Cg,alt:"youtube",className:us.youTube}),r.jsx("a",{href:"https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA",target:"__blank",children:"YouTube"})]})]}),r.jsx("div",{className:us.row,children:r.jsx("a",{href:"mailto:contact@solidity-by-example.org",children:"contact@solidity-by-example.org"})}),r.jsxs("div",{className:us.row,children:[r.jsx("a",{href:"https://github.com/Cyfrin/solidity-by-example.github.io",target:"__blank",children:"Source"}),r.jsx("div",{className:us.bar,children:"|"}),r.jsx("a",{href:"https://github.com/Cyfrin/solidity-by-example.github.io/blob/gh-pages/LICENSE",target:"__blank",children:"License"})]})]})}const YC=({children:s})=>{const{state:a}=ct(),n=B.useRef(null);B.useLayoutEffect(()=>{n.current&&(n.current.scrollTop=parseInt(sessionStorage.getItem("scroll")||"0")||0)},[]);function l(p){var e;sessionStorage.setItem("scroll",(((e=n.current)==null?void 0:e.scrollTop)||0).toString()),window.location.href=p}return r.jsxs("div",{className:Xl.component,children:[r.jsx("div",{ref:n,className:Xl.sideNav,style:a.sideNav?{width:"var(--side-nav-width)",padding:"20px 10px 60px 10px"}:{width:0},children:a.sideNav?r.jsx(eC,{onClick:l}):null}),r.jsxs("div",{className:Xl.main,children:[r.jsx(AC,{}),r.jsxs("div",{className:Xl.children,children:[s,r.jsx(fC,{})]})]})]})},jg=({title:s,description:a})=>(B.useEffect(()=>{document.title=s;const n=document.querySelector("meta[name='description']");n&&n.setAttribute("content",a)},[]),null),Yo=' ',XC='';function vC(s=[]){B.useEffect(()=>{const a=p=>{try{const e=document.createElement("textarea");e.setAttribute("style","width:1px;border:0;opacity:0;"),document.body.appendChild(e),navigator.clipboard.writeText(p.innerText),document.body.removeChild(e)}catch(e){console.error(e)}},n=[];return document.querySelectorAll("pre").forEach(p=>{var i;if(((i=p.parentElement)==null?void 0:i.className)=="copy-wrapper")return;const e=document.createElement("div");e.className="copy-wrapper",p.parentElement.insertBefore(e,p),e.appendChild(p);const c=document.createElement("button");c.className="copy",c.title="Copy",c.innerHTML=Yo,c.ariaLabel="Copy to clipboard",p.after(c);function t(I){I.preventDefault(),a(p.childNodes[0]),c.innerHTML=XC}function o(I){I.preventDefault(),c.innerHTML=Yo}c.addEventListener("click",t),c.addEventListener("blur",o),n.push(()=>{c.removeEventListener("click",t),c.removeEventListener("blur",o)})}),()=>{for(let p=0;p(vC([]),r.jsx("div",{className:`code ${s}`,dangerouslySetInnerHTML:{__html:a}})),NC="_component_ni5i2_1",HC="_content_ni5i2_5",KC="_prevNext_ni5i2_8",he={component:NC,content:HC,prevNext:KC},A=({title:s,version:a,description:n,html:l,prev:p,next:e,codes:c})=>r.jsxs("div",{className:he.component,children:[r.jsx(jg,{title:`${s} | Solidity by Example | ${a}`,description:n}),r.jsxs("div",{className:he.content,children:[r.jsx("h2",{children:s}),r.jsx(RC,{html:l}),r.jsxs("div",{className:he.prevNext,children:[p&&r.jsxs("a",{href:p.path,children:["< ",p.title]}),e&&r.jsxs("a",{href:e.path,children:[e.title," >"]})]}),r.jsx("h3",{children:"Try on Remix"}),r.jsx("ul",{children:c.map(({fileName:t,code:o},i)=>r.jsx("li",{children:r.jsx("a",{href:`https://remix.ethereum.org/?#code=${o}`,target:"_blank",rel:"noreferrer",children:t})},i))})]})]}),FC="0.8.26",MC="ABI Decode",SC="ABI decode bytes",xC=[{fileName:"AbiDecode.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCmNvbnRyYWN0IEFiaURlY29kZSB7CiAgICBzdHJ1Y3QgTXlTdHJ1Y3QgewogICAgICAgIHN0cmluZyBuYW1lOwogICAgICAgIHVpbnQyNTZbMl0gbnVtczsKICAgIH0KCiAgICBmdW5jdGlvbiBlbmNvZGUoCiAgICAgICAgdWludDI1NiB4LAogICAgICAgIGFkZHJlc3MgYWRkciwKICAgICAgICB1aW50MjU2W10gY2FsbGRhdGEgYXJyLAogICAgICAgIE15U3RydWN0IGNhbGxkYXRhIG15U3RydWN0CiAgICApIGV4dGVybmFsIHB1cmUgcmV0dXJucyAoYnl0ZXMgbWVtb3J5KSB7CiAgICAgICAgcmV0dXJuIGFiaS5lbmNvZGUoeCwgYWRkciwgYXJyLCBteVN0cnVjdCk7CiAgICB9CgogICAgZnVuY3Rpb24gZGVjb2RlKGJ5dGVzIGNhbGxkYXRhIGRhdGEpCiAgICAgICAgZXh0ZXJuYWwKICAgICAgICBwdXJlCiAgICAgICAgcmV0dXJucyAoCiAgICAgICAgICAgIHVpbnQyNTYgeCwKICAgICAgICAgICAgYWRkcmVzcyBhZGRyLAogICAgICAgICAgICB1aW50MjU2W10gbWVtb3J5IGFyciwKICAgICAgICAgICAgTXlTdHJ1Y3QgbWVtb3J5IG15U3RydWN0CiAgICAgICAgKQogICAgewogICAgICAgIC8vICh1aW50IHgsIGFkZHJlc3MgYWRkciwgdWludFtdIG1lbW9yeSBhcnIsIE15U3RydWN0IG15U3RydWN0KSA9IC4uLgogICAgICAgICh4LCBhZGRyLCBhcnIsIG15U3RydWN0KSA9CiAgICAgICAgICAgIGFiaS5kZWNvZGUoZGF0YSwgKHVpbnQyNTYsIGFkZHJlc3MsIHVpbnQyNTZbXSwgTXlTdHJ1Y3QpKTsKICAgIH0KfQo="}],JC=`

abi.encode encodes data into bytes.

+ */function rc(s){return s===void 0&&(s=""),new URLSearchParams(typeof s=="string"||Array.isArray(s)||s instanceof URLSearchParams?s:Object.keys(s).reduce((a,n)=>{let l=s[n];return a.concat(Array.isArray(l)?l.map(p=>[n,p]):[[n,l]])},[]))}function Kd(s,a){let n=rc(s);return a&&a.forEach((l,p)=>{n.has(p)||a.getAll(p).forEach(e=>{n.append(p,e)})}),n}const Fd="6";try{window.__reactRouterVersion=Fd}catch{}const Md="startTransition",Go=Hg[Md];function Sd(s){let{basename:a,children:n,future:l,window:p}=s,e=B.useRef();e.current==null&&(e.current=TI({window:p,v5Compat:!0}));let c=e.current,[t,o]=B.useState({action:c.action,location:c.location}),{v7_startTransition:i}=l||{},I=B.useCallback(d=>{i&&Go?Go(()=>o(d)):o(d)},[o,i]);return B.useLayoutEffect(()=>c.listen(I),[c,I]),B.createElement(Nd,{basename:a,children:n,location:t.location,navigationType:t.action,navigator:c,future:l})}var Vo;(function(s){s.UseScrollRestoration="useScrollRestoration",s.UseSubmit="useSubmit",s.UseSubmitFetcher="useSubmitFetcher",s.UseFetcher="useFetcher",s.useViewTransitionState="useViewTransitionState"})(Vo||(Vo={}));var fo;(function(s){s.UseFetcher="useFetcher",s.UseFetchers="useFetchers",s.UseScrollRestoration="useScrollRestoration"})(fo||(fo={}));function xd(s){let a=B.useRef(rc(s)),n=B.useRef(!1),l=Hp(),p=B.useMemo(()=>Kd(l.search,n.current?null:a.current),[l.search]),e=yd(),c=B.useCallback((t,o)=>{const i=rc(typeof t=="function"?t(p):t);n.current=!0,e("?"+i,o)},[e,p]);return[p,c]}const Jd="_component_nqcni_1",zd="_sideNav_nqcni_6",Dd="_main_nqcni_13",Ed="_children_nqcni_21",Xl={component:Jd,sideNav:zd,main:Dd,children:Ed},Qd="_list_1ltry_1",Td="_title_1ltry_6",Ud="_listItem_1ltry_11",_d="_listItemActive_1ltry_18",Ld="_link_1ltry_26",xa={list:Qd,title:Td,listItem:Ud,listItemActive:_d,link:Ld},Od=[{lang:"Armenian",url:"https://pranatech.org/solidity-by-example-hy/"},{lang:"Persian",url:"https://solidifa.ir/solidity-by-example/"},{lang:"Persian",url:"https://siblearn.dev/solidity-by-example"},{lang:"Spanish",url:"https://github.com/lcadafalch/solidity_attacks"},{lang:"Simplified Chinese",url:"https://github.com/Web3-Club/solidity-by-example_Chinese"}],Pd=[{path:"hello-world",title:"Hello World"},{path:"first-app",title:"First App"},{path:"primitives",title:"Primitive Data Types"},{path:"variables",title:"Variables"},{path:"constants",title:"Constants"},{path:"immutable",title:"Immutable"},{path:"state-variables",title:"Reading and Writing to a State Variable"},{path:"ether-units",title:"Ether and Wei"},{path:"gas",title:"Gas and Gas Price"},{path:"if-else",title:"If / Else"},{path:"loop",title:"For and While Loop"},{path:"mapping",title:"Mapping"},{path:"array",title:"Array"},{path:"enum",title:"Enum"},{path:"user-defined-value-types",title:"User Defined Value Types"},{path:"structs",title:"Structs"},{path:"data-locations",title:"Data Locations - Storage, Memory and Calldata"},{path:"transient-storage",title:"Transient Storage"},{path:"function",title:"Function"},{path:"view-and-pure-functions",title:"View and Pure Functions"},{path:"error",title:"Error"},{path:"function-modifier",title:"Function Modifier"},{path:"events",title:"Events"},{path:"events-advanced",title:"Events Advanced"},{path:"constructor",title:"Constructor"},{path:"inheritance",title:"Inheritance"},{path:"shadowing-inherited-state-variables",title:"Shadowing Inherited State Variables"},{path:"super",title:"Calling Parent Contracts"},{path:"visibility",title:"Visibility"},{path:"interface",title:"Interface"},{path:"payable",title:"Payable"},{path:"sending-ether",title:"Sending Ether - Transfer, Send, and Call"},{path:"fallback",title:"Fallback"},{path:"call",title:"Call"},{path:"delegatecall",title:"Delegatecall"},{path:"function-selector",title:"Function Selector"},{path:"calling-contract",title:"Calling Other Contract"},{path:"new-contract",title:"Creating Contracts from a Contract"},{path:"try-catch",title:"Try / Catch"},{path:"import",title:"Import"},{path:"library",title:"Library"},{path:"abi-encode",title:"ABI Encode"},{path:"abi-decode",title:"ABI Decode"},{path:"hashing",title:"Hashing with Keccak256"},{path:"signature",title:"Verifying Signature"},{path:"gas-golf",title:"Gas Optimizations"},{path:"bitwise",title:"Bitwise Operators"},{path:"unchecked-math",title:"Unchecked Math"},{path:"assembly-variable",title:"Assembly Variable"},{path:"assembly-if",title:"Assembly Conditional Statements"},{path:"assembly-loop",title:"Assembly Loop"},{path:"assembly-error",title:"Assembly Error"},{path:"assembly-math",title:"Assembly Math"}],$d=[{path:"ether-wallet",title:"Ether Wallet"},{path:"multi-sig-wallet",title:"Multi Sig Wallet"},{path:"merkle-tree",title:"Merkle Tree"},{path:"iterable-mapping",title:"Iterable Mapping"},{path:"erc20",title:"ERC20"},{path:"erc721",title:"ERC721"},{path:"erc1155",title:"ERC1155"},{path:"gasless-token-transfer",title:"Gasless Token Transfer"},{path:"simple-bytecode-contract",title:"Simple Bytecode Contract"},{path:"create2",title:"Precompute Contract Address with Create2"},{path:"minimal-proxy",title:"Minimal Proxy Contract"},{path:"upgradeable-proxy",title:"Upgradeable Proxy"},{path:"deploy-any-contract",title:"Deploy Any Contract"},{path:"write-to-any-slot",title:"Write to Any Slot"},{path:"uni-directional-payment-channel",title:"Uni-directional Payment Channel"},{path:"bi-directional-payment-channel",title:"Bi-directional Payment Channel"},{path:"english-auction",title:"English Auction"},{path:"dutch-auction",title:"Dutch Auction"},{path:"crowd-fund",title:"Crowd Fund"},{path:"multi-call",title:"Multi Call"},{path:"multi-delegatecall",title:"Multi Delegatecall"},{path:"time-lock",title:"Time Lock"},{path:"assembly-bin-exp",title:"Assembly Binary Exponentiation"},{path:"airdrop",title:"Merkle Airdrop"}],qd=[{path:"re-entrancy",title:"Re-Entrancy"},{path:"overflow",title:"Arithmetic Overflow and Underflow"},{path:"self-destruct",title:"Self Destruct"},{path:"accessing-private-data",title:"Accessing Private Data"},{path:"delegatecall",title:"Delegatecall"},{path:"randomness",title:"Source of Randomness"},{path:"denial-of-service",title:"Denial of Service"},{path:"phishing-with-tx-origin",title:"Phishing with tx.origin"},{path:"hiding-malicious-code-with-external-contract",title:"Hiding Malicious Code with External Contract"},{path:"honeypot",title:"Honeypot"},{path:"front-running",title:"Front Running"},{path:"block-timestamp-manipulation",title:"Block Timestamp Manipulation"},{path:"signature-replay",title:"Signature Replay"},{path:"contract-size",title:"Bypass Contract Size Check"},{path:"deploy-different-contracts-same-address",title:"Deploy Different Contracts at Same Address"},{path:"vault-inflation",title:"Vault Inflation Attack"},{path:"weth-permit",title:"WETH Permit"}],sC=[{path:"storage",title:"EVM Storage Layout"},{path:"memory",title:"EVM Memory Layout"}],aC=[{path:"echidna",title:"Echidna"}],nC=[{path:"uniswap-v2",title:"Uniswap V2 Swap"},{path:"uniswap-v2-add-remove-liquidity",title:"Uniswap V2 Add Remove Liquidity"},{path:"uniswap-v2-optimal-one-sided-supply",title:"Uniswap V2 Optimal One Sided Supply"},{path:"uniswap-v2-flash-swap",title:"Uniswap V2 Flash Swap"},{path:"uniswap-v3-swap",title:"Uniswap V3 Swap"},{path:"uniswap-v3-liquidity",title:"Uniswap V3 Liquidity"},{path:"uniswap-v3-flash",title:"Uniswap V3 Flash Loan"},{path:"uniswap-v3-flash-swap",title:"Uniswap V3 Flash Swap Arbitrage"},{path:"chainlink-price-oracle",title:"Chainlink Price Oracle"},{path:"dai-proxy",title:"DAI Proxy"},{path:"staking-rewards",title:"Staking Rewards"},{path:"discrete-staking-rewards",title:"Discrete Staking Rewards"},{path:"vault",title:"Vault"},{path:"constant-sum-amm",title:"Constant Sum AMM"},{path:"constant-product-amm",title:"Constant Product AMM"},{path:"stable-swap-amm",title:"Stable Swap AMM"}],ot=[{title:"",routes:Pd.map(s=>({...s,path:`/${s.path}`}))},{title:"Applications",routes:$d.map(s=>({...s,path:`/app/${s.path}`}))},{title:"Hacks",routes:qd.map(s=>({...s,path:`/hacks/${s.path}`}))},{title:"EVM",routes:sC.map(s=>({...s,path:`/evm/${s.path}`}))},{title:"Tests",routes:aC.map(s=>({...s,path:`/tests/${s.path}`}))},{title:"DeFi",routes:nC.map(s=>({...s,path:`/defi/${s.path}`}))}],Cp=ot.map(({routes:s})=>s).flat(),lC=Cp.reduce((s,a,n)=>(s[a.path]=n,s),{});function pC(s){const a=lC[s];if(a>=0){const n=Cp[a-1]||null,l=Cp[a+1]||null;return{prev:n,next:l}}return{prev:null,next:null}}const eC=({onClick:s})=>{const a=Hp();function n(l,p){l.preventDefault(),s(p)}return r.jsxs(r.Fragment,{children:[r.jsx("h3",{className:xa.category,children:"Basic"}),ot.map(({routes:l,title:p},e)=>r.jsxs("div",{children:[p&&r.jsx("h3",{className:xa.title,children:p}),r.jsx("ul",{className:xa.list,children:l.map(({path:c,title:t})=>{const o=!!cg(c,a.pathname);return r.jsx("li",{className:o?xa.listItemActive:xa.listItem,children:r.jsx("a",{className:xa.link,href:c,onClick:i=>n(i,c),children:t})},c)})})]},e))]})},cC=({size:s,className:a="",onClick:n})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 20 20",strokeWidth:2,stroke:"currentColor",className:a,width:s,height:s,onClick:n,children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})}),tC="_component_15x91_1",oC="_a_15x91_13",rC="_center_15x91_16",iC="_logo_15x91_21",gC="_header_15x91_24",hC="_mode_15x91_28",IC="_hamburger_15x91_33",aa={component:tC,a:oC,center:rC,logo:iC,header:gC,mode:hC,hamburger:IC},dC=({size:s,className:a=""})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#fff",viewBox:"0 0 438.277 438.277",width:s,height:s,className:a,children:r.jsx("path",{d:"M428.756 300.104c-.664-3.81-2.334-7.047-4.996-9.713-5.9-5.903-12.752-7.142-20.554-3.716-20.937 9.708-42.641 14.558-65.097 14.558-28.171 0-54.152-6.94-77.943-20.838-23.791-13.894-42.631-32.736-56.525-56.53-13.899-23.793-20.844-49.773-20.844-77.945 0-21.888 4.333-42.683 12.991-62.384 8.66-19.7 21.176-36.973 37.543-51.82 6.283-5.898 7.713-12.752 4.287-20.557-3.236-7.801-9.041-11.511-17.415-11.132-29.121 1.141-56.72 7.664-82.797 19.556C111.33 31.478 88.917 47.13 70.168 66.548c-18.747 19.414-33.595 42.399-44.54 68.95-10.942 26.553-16.416 54.39-16.416 83.511 0 29.694 5.806 58.054 17.416 85.082 11.613 27.028 27.218 50.344 46.824 69.949 19.604 19.599 42.92 35.207 69.951 46.822 27.028 11.607 55.384 17.415 85.075 17.415 42.64 0 81.987-11.563 118.054-34.69 36.069-23.124 63.05-54.006 80.944-92.645 1.524-3.423 1.951-7.036 1.28-10.838zm-122.191 84.064c-24.646 11.711-50.676 17.562-78.087 17.562-24.743 0-48.39-4.853-70.947-14.558-22.554-9.705-41.971-22.695-58.246-38.972-16.271-16.272-29.259-35.686-38.97-58.241-9.707-22.556-14.561-46.203-14.561-70.948 0-40.922 12.135-77.466 36.403-109.636 24.266-32.165 55.531-53.959 93.788-65.379-19.795 31.405-29.694 65.379-29.694 101.926 0 34.644 8.564 66.715 25.697 96.223 17.128 29.499 40.446 52.811 69.95 69.948 29.499 17.129 61.565 25.694 96.211 25.694 10.656 0 21.129-.855 31.408-2.57-17.318 20.938-38.307 37.255-62.952 48.951z"})}),CC=({size:s,className:a=""})=>r.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 302.4 302.4",width:s,height:s,className:a,children:[r.jsx("path",{d:"M204.8 97.6C191.2 84 172 75.2 151.2 75.2s-40 8.4-53.6 22.4c-13.6 13.6-22.4 32.8-22.4 53.6s8.8 40 22.4 53.6c13.6 13.6 32.8 22.4 53.6 22.4s40-8.4 53.6-22.4c13.6-13.6 22.4-32.8 22.4-53.6s-8.4-40-22.4-53.6zm-14.4 92.8c-10 10-24 16-39.2 16s-29.2-6-39.2-16-16-24-16-39.2 6-29.2 16-39.2 24-16 39.2-16 29.2 6 39.2 16 16 24 16 39.2-6 29.2-16 39.2z",stroke:"#252519",strokeWidth:12}),r.jsx("path",{d:"M292 140.8h-30.8c-5.6 0-10.4 4.8-10.4 10.4 0 5.6 4.8 10.4 10.4 10.4H292c5.6 0 10.4-4.8 10.4-10.4 0-5.6-4.8-10.4-10.4-10.4zm-140.8 110c-5.6 0-10.4 4.8-10.4 10.4V292c0 5.6 4.8 10.4 10.4 10.4 5.6 0 10.4-4.8 10.4-10.4v-30.8c0-5.6-4.8-10.4-10.4-10.4zm106.8-7.2-22-22c-3.6-4-10.4-4-14.4 0s-4 10.4 0 14.4l22 22c4 4 10.4 4 14.4 0s4-10.4 0-14.4zM151.2 0c-5.6 0-10.4 4.8-10.4 10.4v30.8c0 5.6 4.8 10.4 10.4 10.4 5.6 0 10.4-4.8 10.4-10.4V10.4c0-5.6-4.8-10.4-10.4-10.4zm107.2 44.4c-4-4-10.4-4-14.4 0l-22 22c-4 4-4 10.4 0 14.4 3.6 4 10.4 4 14.4 0l22-22c4-4 4-10.4 0-14.4zM41.2 140.8H10.4c-5.6 0-10.4 4.8-10.4 10.4s4.4 10.4 10.4 10.4h30.8c5.6 0 10.4-4.8 10.4-10.4 0-5.6-4.8-10.4-10.4-10.4zm39.2 80.8c-3.6-4-10.4-4-14.4 0l-22 22c-4 4-4 10.4 0 14.4s10.4 4 14.4 0l22-22c4-4 4-10.4 0-14.4zm0-155.2-22-22c-4-4-10.4-4-14.4 0s-4 10.4 0 14.4l22 22c4 4 10.4 4 14.4 0s4-10.4 0-14.4z",stroke:"#252519",strokeWidth:5})]}),jC=({size:s,className:a="",fill:n})=>r.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1300 1300",xmlSpace:"preserve",width:s,height:s,className:a,fill:n,children:[r.jsx("path",{opacity:.45,d:"M773.772 253.308 643.068 485.61H381.842l130.614-232.302h261.316"}),r.jsx("path",{opacity:.6,d:"M643.068 485.61h261.318L773.772 253.308H512.456L643.068 485.61z"}),r.jsx("path",{opacity:.8,d:"M512.456 717.822 643.068 485.61 512.456 253.308 381.842 485.61l130.614 232.212z"}),r.jsx("path",{opacity:.45,d:"m513.721 1066.275 130.704-232.303h261.318l-130.705 232.303H513.721"}),r.jsx("path",{opacity:.6,d:"M644.424 833.973H383.107l130.613 232.303h261.317L644.424 833.973z"}),r.jsx("path",{opacity:.8,d:"M775.038 601.761 644.424 833.973l130.614 232.303 130.704-232.303-130.704-232.212z"})]});function AC(){const{state:s,setTheme:a,toggleSideNav:n}=ct();function l(){a(s.theme=="light"?"dark":"light")}return r.jsxs("div",{className:aa.component,children:[r.jsx(cC,{size:20,className:aa.hamburger,onClick:n}),r.jsxs("div",{className:aa.center,children:[r.jsx("a",{href:"/",className:aa.a,children:r.jsx(jC,{className:aa.logo,size:30,fill:s.theme=="dark"?"rgb(0, 255, 0)":"currentColor"})}),r.jsx("h3",{className:aa.header,children:r.jsx("a",{href:"/",className:aa.a,children:"Solidity by Example"})})]}),r.jsx("button",{className:aa.mode,onClick:l,children:s.theme=="dark"?r.jsx(dC,{size:20}):r.jsx(CC,{size:20})})]})}const uC="_component_o1tj5_1",yC="_row_o1tj5_8",mC="_bar_o1tj5_13",bC="_to_o1tj5_21",wC="_social_o1tj5_24",kC="_updraft_o1tj5_29",ZC="_telegram_o1tj5_34",WC="_discord_o1tj5_38",BC="_youTube_o1tj5_42",us={component:uC,row:yC,bar:mC,to:bC,social:wC,updraft:kC,telegram:ZC,discord:WC,youTube:BC},dg="/assets/updraft-D5eZlzRj.png",Cg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAyCAYAAAAOX8ZtAAAABmJLR0QA/wD/AP+gvaeTAAADmUlEQVRoge3bT2wUZRjH8c9Ml39S09IC/uFiRBIwabzVE15oiJBwLBcP3npS4E4IBA/EAwmcCInhoCeJNwgQoDGRC8GESMDYhJRyUAQplZa2tBYdD+9suqmsadHO+6J8kzd5Z3Znnt/+9p1ndt593swCKViFV7EWK8vWjpewouyvLLdfLg9rxZKG0ywt39NIOzL8gdE5r42W++uMY6bs/4pJTOARxsr+RHncOO7hbsbjhXzWrNkLBcvxPt5FF97Ga8L+55VR/Ijv8R0u45uM3+d9hoK+gnsFxf+g3S74cD6mrCj4PAHBMdpXRUgLTc35IgGRMduXzYz5OAFxKbSP6p5kpTHtuI22eSem/y4P8UbGaF7u6PXCmDrtgh/q5vTE05IkPcya0x1RSIp0Q1aEy+lhZDEpsirH+tgqEmV9jjdjq0iUt3Ksi60iUdbl6Kw05NatrFlTachnpDPH6kpD7tjBrVscOMCyZZWGXiCrqzcHWlvZv5/r1+ntrTz8POms/rJqZMMGTp7k4kW6uqLJaMLqHB2xVdiyhatXOX48pXzUmQvTmfGp1ejrY2CA3bvDdlyW50grK3Z0cORIyEfbtsVUsjQ9c+ps3MiZM1y4wKZNMRQsS9ecOj09XLvG0aO0VTqrkvDIaWTJEnbtYnAw5KOWliqiPgcjp5HOzpCPrlxh8+bFjrY0R7HYUZ5Tshy/xVYxb4aH2bOH7m4uXVrsaFM1TEvlt04zZmY4dox9+xgbqyrqdN2cdDl9OoyWwcGqI0/nUjVnYIDt28NTfPXGkKQ5IyNhpHR1cfZsTCVTNaF8Iz5PnnDiBHv3hsQbn6kaRmKr0N8fRsuNG7GVNDKcI97XdPMmO3eGR4S0jIHhmhjmjI9z+DCHDjGdVsprIII5p05x8CD371ca9hl4UMODSkOeP19puH/AcI47sVUkys85bsVWkSiDLwoJmtOWZ6H8dCi2ksQYyhir1+dciSolPb5ltnipP6KQFPmaFwWTT+ORUDA5kkMWEvIncTUlw6fZ3OfNgpaCUwnUAcds/QVP/6u1YHnBZwmIjNHOFbOrfJpT8EHBUAKCq2h3i1C9n8/14e+WFLXgPWFJ0TvCkqLXxajn+fd4jJ/wg7Cs6DLOZU1mQ5ua04wi/Am4Fq8Id7lWs4vSVjX0W4W7X17GaZ9zqvriszr19xb++ov9EZ40bD/GVNkfFWYzJ8vjJsp+fWHaJH7BnSzsmzd/AkgxNaTAmykLAAAAAElFTkSuQmCC",GC="/assets/telegram-DMavHjFx.png",VC="/assets/discord-BqSoMD3G.png";function fC(){return r.jsxs("div",{className:us.component,children:[r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:dg,alt:"cyfrin",className:us.updraft}),r.jsx("a",{href:"https://updraft.cyfrin.io",target:"__blank",children:"Cyfrin Updraft"})]}),r.jsxs("div",{className:us.social,children:[r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:VC,alt:"discord",className:us.discord}),r.jsx("a",{href:"https://discord.gg/bt8FK2wkcW",target:"__blank",children:"Discord"})]}),r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:GC,alt:"telegram",className:us.telegram}),r.jsx("a",{href:"https://t.me/smartcontractprogrammer",target:"__blank",children:"Telegram"})]}),r.jsxs("div",{className:us.row,children:[r.jsx("img",{src:Cg,alt:"youtube",className:us.youTube}),r.jsx("a",{href:"https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA",target:"__blank",children:"YouTube"})]})]}),r.jsx("div",{className:us.row,children:r.jsx("a",{href:"mailto:contact@solidity-by-example.org",children:"contact@solidity-by-example.org"})}),r.jsxs("div",{className:us.row,children:[r.jsx("a",{href:"https://github.com/Cyfrin/solidity-by-example.github.io",target:"__blank",children:"source"}),r.jsx("div",{className:us.bar,children:"|"}),r.jsx("a",{href:"https://github.com/Cyfrin/solidity-by-example.github.io/blob/gh-pages/LICENSE",target:"__blank",children:"license"})]})]})}const YC=({children:s})=>{const{state:a}=ct(),n=B.useRef(null);B.useLayoutEffect(()=>{n.current&&(n.current.scrollTop=parseInt(sessionStorage.getItem("scroll")||"0")||0)},[]);function l(p){var e;sessionStorage.setItem("scroll",(((e=n.current)==null?void 0:e.scrollTop)||0).toString()),window.location.href=p}return r.jsxs("div",{className:Xl.component,children:[r.jsx("div",{ref:n,className:Xl.sideNav,style:a.sideNav?{width:"var(--side-nav-width)",padding:"20px 10px 60px 10px"}:{width:0},children:a.sideNav?r.jsx(eC,{onClick:l}):null}),r.jsxs("div",{className:Xl.main,children:[r.jsx(AC,{}),r.jsxs("div",{className:Xl.children,children:[s,r.jsx(fC,{})]})]})]})},jg=({title:s,description:a})=>(B.useEffect(()=>{document.title=s;const n=document.querySelector("meta[name='description']");n&&n.setAttribute("content",a)},[]),null),Yo=' ',XC='';function vC(s=[]){B.useEffect(()=>{const a=p=>{try{const e=document.createElement("textarea");e.setAttribute("style","width:1px;border:0;opacity:0;"),document.body.appendChild(e),navigator.clipboard.writeText(p.innerText),document.body.removeChild(e)}catch(e){console.error(e)}},n=[];return document.querySelectorAll("pre").forEach(p=>{var i;if(((i=p.parentElement)==null?void 0:i.className)=="copy-wrapper")return;const e=document.createElement("div");e.className="copy-wrapper",p.parentElement.insertBefore(e,p),e.appendChild(p);const c=document.createElement("button");c.className="copy",c.title="Copy",c.innerHTML=Yo,c.ariaLabel="Copy to clipboard",p.after(c);function t(I){I.preventDefault(),a(p.childNodes[0]),c.innerHTML=XC}function o(I){I.preventDefault(),c.innerHTML=Yo}c.addEventListener("click",t),c.addEventListener("blur",o),n.push(()=>{c.removeEventListener("click",t),c.removeEventListener("blur",o)})}),()=>{for(let p=0;p(vC([]),r.jsx("div",{className:`code ${s}`,dangerouslySetInnerHTML:{__html:a}})),NC="_component_ni5i2_1",HC="_content_ni5i2_5",KC="_prevNext_ni5i2_8",he={component:NC,content:HC,prevNext:KC},A=({title:s,version:a,description:n,html:l,prev:p,next:e,codes:c})=>r.jsxs("div",{className:he.component,children:[r.jsx(jg,{title:`${s} | Solidity by Example | ${a}`,description:n}),r.jsxs("div",{className:he.content,children:[r.jsx("h2",{children:s}),r.jsx(RC,{html:l}),r.jsxs("div",{className:he.prevNext,children:[p&&r.jsxs("a",{href:p.path,children:["< ",p.title]}),e&&r.jsxs("a",{href:e.path,children:[e.title," >"]})]}),r.jsx("h3",{children:"Try on Remix"}),r.jsx("ul",{children:c.map(({fileName:t,code:o},i)=>r.jsx("li",{children:r.jsx("a",{href:`https://remix.ethereum.org/?#code=${o}`,target:"_blank",rel:"noreferrer",children:t})},i))})]})]}),FC="0.8.26",MC="ABI Decode",SC="ABI decode bytes",xC=[{fileName:"AbiDecode.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCmNvbnRyYWN0IEFiaURlY29kZSB7CiAgICBzdHJ1Y3QgTXlTdHJ1Y3QgewogICAgICAgIHN0cmluZyBuYW1lOwogICAgICAgIHVpbnQyNTZbMl0gbnVtczsKICAgIH0KCiAgICBmdW5jdGlvbiBlbmNvZGUoCiAgICAgICAgdWludDI1NiB4LAogICAgICAgIGFkZHJlc3MgYWRkciwKICAgICAgICB1aW50MjU2W10gY2FsbGRhdGEgYXJyLAogICAgICAgIE15U3RydWN0IGNhbGxkYXRhIG15U3RydWN0CiAgICApIGV4dGVybmFsIHB1cmUgcmV0dXJucyAoYnl0ZXMgbWVtb3J5KSB7CiAgICAgICAgcmV0dXJuIGFiaS5lbmNvZGUoeCwgYWRkciwgYXJyLCBteVN0cnVjdCk7CiAgICB9CgogICAgZnVuY3Rpb24gZGVjb2RlKGJ5dGVzIGNhbGxkYXRhIGRhdGEpCiAgICAgICAgZXh0ZXJuYWwKICAgICAgICBwdXJlCiAgICAgICAgcmV0dXJucyAoCiAgICAgICAgICAgIHVpbnQyNTYgeCwKICAgICAgICAgICAgYWRkcmVzcyBhZGRyLAogICAgICAgICAgICB1aW50MjU2W10gbWVtb3J5IGFyciwKICAgICAgICAgICAgTXlTdHJ1Y3QgbWVtb3J5IG15U3RydWN0CiAgICAgICAgKQogICAgewogICAgICAgIC8vICh1aW50IHgsIGFkZHJlc3MgYWRkciwgdWludFtdIG1lbW9yeSBhcnIsIE15U3RydWN0IG15U3RydWN0KSA9IC4uLgogICAgICAgICh4LCBhZGRyLCBhcnIsIG15U3RydWN0KSA9CiAgICAgICAgICAgIGFiaS5kZWNvZGUoZGF0YSwgKHVpbnQyNTYsIGFkZHJlc3MsIHVpbnQyNTZbXSwgTXlTdHJ1Y3QpKTsKICAgIH0KfQo="}],JC=`

abi.encode encodes data into bytes.

abi.decode decodes bytes back into data.

// SPDX-License-Identifier: MIT
 pragma solidity ^0.8.26;
diff --git a/bitwise/index.html b/bitwise/index.html
index d0a394045..a48036075 100644
--- a/bitwise/index.html
+++ b/bitwise/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/call/index.html b/call/index.html
index d0a394045..a48036075 100644
--- a/call/index.html
+++ b/call/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/calling-contract/index.html b/calling-contract/index.html
index d0a394045..a48036075 100644
--- a/calling-contract/index.html
+++ b/calling-contract/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/constants/index.html b/constants/index.html
index d0a394045..a48036075 100644
--- a/constants/index.html
+++ b/constants/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/constructor/index.html b/constructor/index.html
index d0a394045..a48036075 100644
--- a/constructor/index.html
+++ b/constructor/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/data-locations/index.html b/data-locations/index.html
index d0a394045..a48036075 100644
--- a/data-locations/index.html
+++ b/data-locations/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/chainlink-price-oracle/index.html b/defi/chainlink-price-oracle/index.html
index d0a394045..a48036075 100644
--- a/defi/chainlink-price-oracle/index.html
+++ b/defi/chainlink-price-oracle/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/constant-product-amm/index.html b/defi/constant-product-amm/index.html
index d0a394045..a48036075 100644
--- a/defi/constant-product-amm/index.html
+++ b/defi/constant-product-amm/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/constant-sum-amm/index.html b/defi/constant-sum-amm/index.html
index d0a394045..a48036075 100644
--- a/defi/constant-sum-amm/index.html
+++ b/defi/constant-sum-amm/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/dai-proxy/index.html b/defi/dai-proxy/index.html
index d0a394045..a48036075 100644
--- a/defi/dai-proxy/index.html
+++ b/defi/dai-proxy/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/discrete-staking-rewards/index.html b/defi/discrete-staking-rewards/index.html
index d0a394045..a48036075 100644
--- a/defi/discrete-staking-rewards/index.html
+++ b/defi/discrete-staking-rewards/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/stable-swap-amm/index.html b/defi/stable-swap-amm/index.html
index d0a394045..a48036075 100644
--- a/defi/stable-swap-amm/index.html
+++ b/defi/stable-swap-amm/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/staking-rewards/index.html b/defi/staking-rewards/index.html
index d0a394045..a48036075 100644
--- a/defi/staking-rewards/index.html
+++ b/defi/staking-rewards/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v2-add-remove-liquidity/index.html b/defi/uniswap-v2-add-remove-liquidity/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v2-add-remove-liquidity/index.html
+++ b/defi/uniswap-v2-add-remove-liquidity/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v2-flash-swap/index.html b/defi/uniswap-v2-flash-swap/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v2-flash-swap/index.html
+++ b/defi/uniswap-v2-flash-swap/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v2-optimal-one-sided-supply/index.html b/defi/uniswap-v2-optimal-one-sided-supply/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v2-optimal-one-sided-supply/index.html
+++ b/defi/uniswap-v2-optimal-one-sided-supply/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v2/index.html b/defi/uniswap-v2/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v2/index.html
+++ b/defi/uniswap-v2/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v3-flash-swap/index.html b/defi/uniswap-v3-flash-swap/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v3-flash-swap/index.html
+++ b/defi/uniswap-v3-flash-swap/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v3-flash/index.html b/defi/uniswap-v3-flash/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v3-flash/index.html
+++ b/defi/uniswap-v3-flash/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v3-liquidity/index.html b/defi/uniswap-v3-liquidity/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v3-liquidity/index.html
+++ b/defi/uniswap-v3-liquidity/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/uniswap-v3-swap/index.html b/defi/uniswap-v3-swap/index.html
index d0a394045..a48036075 100644
--- a/defi/uniswap-v3-swap/index.html
+++ b/defi/uniswap-v3-swap/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/defi/vault/index.html b/defi/vault/index.html
index d0a394045..a48036075 100644
--- a/defi/vault/index.html
+++ b/defi/vault/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/delegatecall/index.html b/delegatecall/index.html
index d0a394045..a48036075 100644
--- a/delegatecall/index.html
+++ b/delegatecall/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/enum/index.html b/enum/index.html
index d0a394045..a48036075 100644
--- a/enum/index.html
+++ b/enum/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/error/index.html b/error/index.html
index d0a394045..a48036075 100644
--- a/error/index.html
+++ b/error/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/ether-units/index.html b/ether-units/index.html
index d0a394045..a48036075 100644
--- a/ether-units/index.html
+++ b/ether-units/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/events-advanced/index.html b/events-advanced/index.html
index d0a394045..a48036075 100644
--- a/events-advanced/index.html
+++ b/events-advanced/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/events/index.html b/events/index.html
index d0a394045..a48036075 100644
--- a/events/index.html
+++ b/events/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/evm/memory/index.html b/evm/memory/index.html
index d0a394045..a48036075 100644
--- a/evm/memory/index.html
+++ b/evm/memory/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/evm/storage/index.html b/evm/storage/index.html
index d0a394045..a48036075 100644
--- a/evm/storage/index.html
+++ b/evm/storage/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/fallback/index.html b/fallback/index.html
index d0a394045..a48036075 100644
--- a/fallback/index.html
+++ b/fallback/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/first-app/index.html b/first-app/index.html
index d0a394045..a48036075 100644
--- a/first-app/index.html
+++ b/first-app/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/function-modifier/index.html b/function-modifier/index.html
index d0a394045..a48036075 100644
--- a/function-modifier/index.html
+++ b/function-modifier/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/function-selector/index.html b/function-selector/index.html
index d0a394045..a48036075 100644
--- a/function-selector/index.html
+++ b/function-selector/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/function/index.html b/function/index.html
index d0a394045..a48036075 100644
--- a/function/index.html
+++ b/function/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/gas-golf/index.html b/gas-golf/index.html
index d0a394045..a48036075 100644
--- a/gas-golf/index.html
+++ b/gas-golf/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/gas/index.html b/gas/index.html
index d0a394045..a48036075 100644
--- a/gas/index.html
+++ b/gas/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/accessing-private-data/index.html b/hacks/accessing-private-data/index.html
index d0a394045..a48036075 100644
--- a/hacks/accessing-private-data/index.html
+++ b/hacks/accessing-private-data/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/block-timestamp-manipulation/index.html b/hacks/block-timestamp-manipulation/index.html
index d0a394045..a48036075 100644
--- a/hacks/block-timestamp-manipulation/index.html
+++ b/hacks/block-timestamp-manipulation/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/contract-size/index.html b/hacks/contract-size/index.html
index d0a394045..a48036075 100644
--- a/hacks/contract-size/index.html
+++ b/hacks/contract-size/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/delegatecall/index.html b/hacks/delegatecall/index.html
index d0a394045..a48036075 100644
--- a/hacks/delegatecall/index.html
+++ b/hacks/delegatecall/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/denial-of-service/index.html b/hacks/denial-of-service/index.html
index d0a394045..a48036075 100644
--- a/hacks/denial-of-service/index.html
+++ b/hacks/denial-of-service/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/deploy-different-contracts-same-address/index.html b/hacks/deploy-different-contracts-same-address/index.html
index d0a394045..a48036075 100644
--- a/hacks/deploy-different-contracts-same-address/index.html
+++ b/hacks/deploy-different-contracts-same-address/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/front-running/index.html b/hacks/front-running/index.html
index d0a394045..a48036075 100644
--- a/hacks/front-running/index.html
+++ b/hacks/front-running/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/hiding-malicious-code-with-external-contract/index.html b/hacks/hiding-malicious-code-with-external-contract/index.html
index d0a394045..a48036075 100644
--- a/hacks/hiding-malicious-code-with-external-contract/index.html
+++ b/hacks/hiding-malicious-code-with-external-contract/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/honeypot/index.html b/hacks/honeypot/index.html
index d0a394045..a48036075 100644
--- a/hacks/honeypot/index.html
+++ b/hacks/honeypot/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/overflow/index.html b/hacks/overflow/index.html
index d0a394045..a48036075 100644
--- a/hacks/overflow/index.html
+++ b/hacks/overflow/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/phishing-with-tx-origin/index.html b/hacks/phishing-with-tx-origin/index.html
index d0a394045..a48036075 100644
--- a/hacks/phishing-with-tx-origin/index.html
+++ b/hacks/phishing-with-tx-origin/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/randomness/index.html b/hacks/randomness/index.html
index d0a394045..a48036075 100644
--- a/hacks/randomness/index.html
+++ b/hacks/randomness/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/re-entrancy/index.html b/hacks/re-entrancy/index.html
index d0a394045..a48036075 100644
--- a/hacks/re-entrancy/index.html
+++ b/hacks/re-entrancy/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/self-destruct/index.html b/hacks/self-destruct/index.html
index d0a394045..a48036075 100644
--- a/hacks/self-destruct/index.html
+++ b/hacks/self-destruct/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/signature-replay/index.html b/hacks/signature-replay/index.html
index d0a394045..a48036075 100644
--- a/hacks/signature-replay/index.html
+++ b/hacks/signature-replay/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/vault-inflation/index.html b/hacks/vault-inflation/index.html
index d0a394045..a48036075 100644
--- a/hacks/vault-inflation/index.html
+++ b/hacks/vault-inflation/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hacks/weth-permit/index.html b/hacks/weth-permit/index.html
index d0a394045..a48036075 100644
--- a/hacks/weth-permit/index.html
+++ b/hacks/weth-permit/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hashing/index.html b/hashing/index.html
index d0a394045..a48036075 100644
--- a/hashing/index.html
+++ b/hashing/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/hello-world/index.html b/hello-world/index.html
index d0a394045..a48036075 100644
--- a/hello-world/index.html
+++ b/hello-world/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/if-else/index.html b/if-else/index.html
index d0a394045..a48036075 100644
--- a/if-else/index.html
+++ b/if-else/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/immutable/index.html b/immutable/index.html
index d0a394045..a48036075 100644
--- a/immutable/index.html
+++ b/immutable/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/import/index.html b/import/index.html
index d0a394045..a48036075 100644
--- a/import/index.html
+++ b/import/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/index.html b/index.html
index d0a394045..a48036075 100644
--- a/index.html
+++ b/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/inheritance/index.html b/inheritance/index.html
index d0a394045..a48036075 100644
--- a/inheritance/index.html
+++ b/inheritance/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/interface/index.html b/interface/index.html
index d0a394045..a48036075 100644
--- a/interface/index.html
+++ b/interface/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/library/index.html b/library/index.html
index d0a394045..a48036075 100644
--- a/library/index.html
+++ b/library/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/loop/index.html b/loop/index.html
index d0a394045..a48036075 100644
--- a/loop/index.html
+++ b/loop/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/mapping/index.html b/mapping/index.html
index d0a394045..a48036075 100644
--- a/mapping/index.html
+++ b/mapping/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/new-contract/index.html b/new-contract/index.html
index d0a394045..a48036075 100644
--- a/new-contract/index.html
+++ b/new-contract/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/payable/index.html b/payable/index.html
index d0a394045..a48036075 100644
--- a/payable/index.html
+++ b/payable/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/primitives/index.html b/primitives/index.html
index d0a394045..a48036075 100644
--- a/primitives/index.html
+++ b/primitives/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/sending-ether/index.html b/sending-ether/index.html
index d0a394045..a48036075 100644
--- a/sending-ether/index.html
+++ b/sending-ether/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/shadowing-inherited-state-variables/index.html b/shadowing-inherited-state-variables/index.html
index d0a394045..a48036075 100644
--- a/shadowing-inherited-state-variables/index.html
+++ b/shadowing-inherited-state-variables/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/signature/index.html b/signature/index.html
index d0a394045..a48036075 100644
--- a/signature/index.html
+++ b/signature/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/state-variables/index.html b/state-variables/index.html
index d0a394045..a48036075 100644
--- a/state-variables/index.html
+++ b/state-variables/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/structs/index.html b/structs/index.html
index d0a394045..a48036075 100644
--- a/structs/index.html
+++ b/structs/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/super/index.html b/super/index.html
index d0a394045..a48036075 100644
--- a/super/index.html
+++ b/super/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/tests/echidna/index.html b/tests/echidna/index.html
index d0a394045..a48036075 100644
--- a/tests/echidna/index.html
+++ b/tests/echidna/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/transient-storage/index.html b/transient-storage/index.html
index d0a394045..a48036075 100644
--- a/transient-storage/index.html
+++ b/transient-storage/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/try-catch/index.html b/try-catch/index.html
index d0a394045..a48036075 100644
--- a/try-catch/index.html
+++ b/try-catch/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/unchecked-math/index.html b/unchecked-math/index.html
index d0a394045..a48036075 100644
--- a/unchecked-math/index.html
+++ b/unchecked-math/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/user-defined-value-types/index.html b/user-defined-value-types/index.html
index d0a394045..a48036075 100644
--- a/user-defined-value-types/index.html
+++ b/user-defined-value-types/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/variables/index.html b/variables/index.html
index d0a394045..a48036075 100644
--- a/variables/index.html
+++ b/variables/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/view-and-pure-functions/index.html b/view-and-pure-functions/index.html
index d0a394045..a48036075 100644
--- a/view-and-pure-functions/index.html
+++ b/view-and-pure-functions/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+    
     
   
   
diff --git a/visibility/index.html b/visibility/index.html
index d0a394045..a48036075 100644
--- a/visibility/index.html
+++ b/visibility/index.html
@@ -28,7 +28,7 @@
 
       gtag("config", "UA-133759045-1")
     
-    
+