ETH Price: $3,651.72 (+2.01%)

Contract

0x5AeB2B1c0b990C934FE942dAae926706F547390B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ColorProviderAlpha

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 3 : ColorProviderAlpha.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

import "./IColorProvider.sol";

contract ColorProviderAlpha is IColorProvider {
    bytes private constant COLOR_NAMES_7 = "BRRILIANT WHITE|LUCENT WHITE|CLOUD DANCER|COCONUT MILK|TOFU|SUGAR SWIZZLE|BRIGHTWHITE|MARSHMALLOW|CANNOLICREAM|EGRET|PRISTINE|EGGNOG|GARDENIA|BIRCH|ANTIQUE WHITE|SEEDPEARL|WHITE SWAN|PARCHMENT|FEATHER GRAY|OXFORD TAN|HUMUS|WHITE ONYX|SILVER BIRCH|OVERCAST|PLAZA TAUPE|ICICLE|LIGHT GRAY|SILVER GREEN|ALFALFA|MOSS GRAY|AGATE GRAY|ABBEY STONE|TURTLEDOVE|PISTACHIO|CASTLE WALL|TIDAL FOAM|EUCALYPTUS|SPRAY GREEN|MOTH|GREEN HAZE|FIELDS OF RYE|SENECA ROCK|SILVER SAGE|PUTTY|LEMON PEPPER|INCENSE|CORNSTALK|KELP|SEPIA TINT|SEMOLINA|IRISH CREAM|WOOD ASH|SAVANNAH TAN|TEAK|VANILLA CREAM|MOTHER OF PEARL|LINEN|TENDER PEACH|NUDE|PEACH PURAE|ALESAN|SUN KISS|NOVELLE PEACH|AMBERLIGHT|HAZELNUT|SMOKE GRAY|CEMENT|SESAME|CUBAN SAND|NOMAD|MOONLIGHT|LIGHT TAUPE";
    bytes private constant COLOR_RGBS_7 = hex"EDF1FEF4F7FFF1EEE8F1EDE4EAE4D7F4EFE6F5F7F6F1EFE3F1F0E1F4ECDFF3E8D9EEE3D4F1EADFDFD6C5EFE3D0E8DBC2E6D7C3E1D1BCBCAE9ABCA996BBA78EDBDACFD5D0C1C7BFA7B3A48EDBDECEDCD7C9D9D9C5BDBDA0B4AE92B5B49BB0AA93E0D8C6DAD0B8CBC3A8C3BB9FB6AB8DB3A88DD5CDACCEC6A0BCAA8BA09479998D72D7CBADA79677B49B79AE95759E85618F755AD2B995C4AD8EDACBADAB947EA19079F6D8C4EBD4C1EFD2BEFAD5B6F4D3BAF1CFB8F3CEB1EDD1B9E9CFBBE5BE9FD3B091D1BAA5C8B6A2BFA386C5A689B99F84C9B19CB69C88";
    uint96 private constant COLOR_TOTAL_AMOUNT_7 = 72 * 7;

    bytes private constant COLOR_NAMES_8 = "DOESKIN|AMPHORA|PORTABELLA|STUCCO|ALMONDINE|CHANTERELLE|WOODSMOKE|BEAVER FUR|BROWNIE|SHITAKE|RAIN DRUM|GREIGE|FOSSIL|MOREL|FALCON|CASHEW|TIMBER WOLF|BUNGEE CORD|TARMAC|PURE CASHMERE|BRINDLE|CANTEEN|WALNUT|STONE GRAY|MOONSTRUCK|CHATEAU GRAY|STRING|ALUMINUM|WHITE SAND|WIND CHIME|ASHES OF ROSE|PORPOISE|ASH|SILENT STORM|DOVE|FLINT GRAY|FROST GRAY|CLOUDBURST|DARK GULL GRAY|TIRAMISU|CHARCOAL GRAY|GHOST GRAY|MOURNING DOVE|ELEPHANT SKIN|GRIFFIN|MIRAGE GRAY|LIMESTONE|MOON MIST|BLUE BLUSH|FOGGY DEW|STORM GRAY|NEUTRAL GRAY|SEDONA SAGE|CASTOR GRAY|GUNMETAL|BIT OF BLUE|HIGH RISE|QUARRY|MONUMENT|SHARKSKIN|LAVA SMOKE|NIMBUS CLOUD|WEATHERVANE|NIGHT OWL|POPPY SEED|ANTARCTICA|GRAY VIOLET|MICRO CHIP|HARBOR MIST|SILVER SCONCE|ALLOY|SKYROCKET|SILVER FILIGREE|QUIET SHADE|WET WEATHER|TITANIUM|GRAY QUILL|GULL GRAY|ZINC|CITY SKYLINE|GULL|STORM FRONT|VOLCANIC GLASS|TORNADO|PLUM KITTEN|BOULEVARD|PALOMA|MOCKINGBIRD|PEWTER|THUNDERSTORM|MAGNET|EXCALIBUR|SHALE|PAVEMENT|EBONY|PERISCOPE|FORGED IRON|OBSIDIAN|PHANTOM|BLACK INK|PEAT|TURKISH COFFEE|JET SET|SLATE BLACK|WREN|DEMITASSE|MULCH|ESPRESSO|CHOCOLATE|DELICIOSO|COFFEE BEAN|FRENCH ROAST|SEAL BROWN|BLACK COFFEE|GANACHE|CHESTNUT|ROCKY ROAD|CAPPUCCINO|FUDGESICKLE|RUM RAISIN|SABLE|HENNA|FIRED BRICK|MADDER BROWN|HOT CHOCOLATE|COPPER BROWN|BRUSCHETTA|BURNT BRICK|MARSALA|RED OCHRE|BURNT HENNA|ETRUSCAN RED|BAKED CLAY|ARABIAN SPICE|SEQUOIA|FRIAR BROWN|SIERRA|ARGAN OIL|COCONUT SHELL|TORTOISE SHELL|RAW UMBER|CLOVE|CAROB BROWN|RUSSET|COGNAC|ACORN|PARTRIDGE|DACHSHUND|TOFFEE|CARAFE|EMPERADOR|COFFEE QUARTZ|COCOA|SINOPIA FRESCO|CHOCOLATE MALT|PECAN PIE|SOFT SILT|PRALINE|MACAROON|TAWNY BIRCH|INDIAN TAN|MACCHIATO|LION|NOUGAT|ROEBUCK|CAMEL|MOCHA MOUSSE|CREAM TAN|SPANISH VILLA|SIROCCO|TUSCANY|CORK|SILVER PEONY|CAMEO ROSE|ROSE DUST|MAHOGANY ROSE|SLIGHTLY PINK|COCONUT CREAM|PETAL PINK|SALSA ROSA|ANGEL WING|SEA SALT|SHEER PINK|BRIDAL BLUSH|DEW|MORGANITE|PEACH BLUSH|POWDER PUFF|PEACH DUST|SOFT PINK|SCALLOP SHELL|PALE DOGWOOD|PEARL BLUSH|CREROLE PINK|PEACHY KEEN|PALE BLUSH|ROSE CLOUD|DUSTY PINK|BELLINI|PEACH NOUGAT|PINK SAND|DUSTY CORAL|MUTED CLAY|AUTUMN BLONDE|GOLDEN STRAW|DOE|CLAY|ADOBE|GLAZED GINGER|LEATHER BROWN|PEACH BLOOM|PHEASANT|SUNBURN|AMBER BROWN|HAZEL|SANDSTONE|CARAMEL|RAW SIENNA|AUTUMN LEAF|AUTUMNAL|UMBER|MECCA ORANGE|AUTUMN GLAZE|POTTER'S CLAY|ROOIBOS TEA|PICANTE|APRICOT BRANDY|ARAGON|TANDOORI SPICE|BOSSA NOVA|KETCHUP|CORAL HAZE|CANYON CLAY|LANTANA|FADED ROSE|DUSTY CEDAR|BAKED APPLE|SHRIMP|TAWNY ORANGE|BURNT SIENNA|HOT SAUCE|CARNELIAN|ARABESQUE|LANGOUSTINO|BURNT CORAL|TERRA COTTA|FLAMINGO|BURNT OCHRE|PAPAYA PUNCH|PEACH NECTAR|CORAL REEF|PEACH PINK|CADMIUM ORANGE|CANTALOUPE|MELON|PALE PEACH|PEACH PARFAIT|SALMON|SHELL CORAL|PEACH FUZZ|BEACH SAND|APRICOT WASH|PEACH COBBLER|SALMON BUFF|PUMPKIN|CREAMPUFF|PEACH QUARTZ|COPPER TAN|CORAL GOLD|CREAM BLUSH|APRICOT NECTAR|GOLD EARTH|APRICOT TAN|GOLDEN OCHRE|RUST|TOMATO CREAM|BURNT ORANGE|GOLD FLAME|HARVEST PUMPKIN|MUSKMELON|AMBERGLOW|JAFFA ORANGE|AUTUMN MAPLE";
    bytes private constant COLOR_RGBS_8 = hex"C1AB97A5856C997A64AA8C7AAD8B75A886709A765E9F766195705F78624E634B3C98846F866E5D6D5B4E72615697857393816A6E62515E5444B5A6948877656253437C6A5A6D5F4AC5BFB3BFB1A4AF9F91A49681DDD5CFCDC4BFB7ABA9A9A09CA298967E7975B5ADA5A29C96868083867C7C645B5B6E3D2A6E66669E9C969690899189808B9191A9B1AF969C9681847AD5E0DCD0D6CFB4BBB58C938E666F6D6469605C5F59E2EAEBACB2B796A0A7828A8E8183895C5F66D4D4D989919A777781606269C7C4C7BABDBDB9BCC1ADB1B6A09DA797959C84848E80798464656F948E8E837A807D777DA69AA0948788706A72938A8F7A7176635A615E596264595B58515AA19C9775757C6865625D565B4D4951685F6A4B3E40544B5040414B45434D48454B3B353C39363C45413B3C3B35493F38252D2A4C3D324B413841342A443836372F304F3F3A40352E41302E5A413D4A3A383C2F2E352829593F385B3D356E39286F382E622B287B352F8A372E75241F76282574302DAC563FB94D37B1432AA73F3BA02B238B2F22B44A39AD4D31963B248E402B7B442DA856319A542F96462D824227A46A4D98584495553CA0563F9C5A498E57427F51337D4D2A824E2C68442F744626774F4264432BA46F54A26B508A55387A4831BE8764C38861BF815BBF8255BE7E54B26E3DC59576BF8B71C18059B67152EBC5B1E8B7A0D0997BCC9277CA7F61EDCCC1E0B4A2D8AE9BD19C87F1E3DBF2DED8F5DFDDF7D9CFF7DDD3F5E5DAF9E4D8F2E0D9F3DECCE6CABFEAC8C0F7DFD2F5D6C7F7D6C8FFD6C5F3CABCF9CBC0FBD2C8EAB8ABECBBABE5AB98E8A491FBC7AAF0AC87E9AE91DF9676DF8C73F5D0A7F0BE85CA8D57E0A164B45E2A9F531DA6541CE6976FD67F53C56B44B86034C16D3DD48659D47743CB6A3DC85F39B04F16A14612D04A32C54C2DAD4015B132179B361FD35E49C35742B0352FA62C27A92C1EEE8579DC7A69E7726DCF5454BF4B4BC63333ED947BE17561D74F41BD422FDE704DE16642DB6245F48073E17969EE6944CD4423FFA086FFB59BFF9F7CFF9780FF916BFFA177FF8762FFD1BCFFBCA1FFA78FF69069FFBE98FFB891FFAB7EFFB181FFAA7AFFA564FFCDA8FEB68CEC8957E27746FFC093F7A86EEB9A5DEB9552D97631C6541FD77232DB6120C44F12E85B1EFA9051ED752DEA6727D46005";
    uint96 private constant COLOR_TOTAL_AMOUNT_8 = 283 * 8;

    bytes private constant COLOR_NAMES_9 = "PAPAYA|TANGERINE|DARK CHEDDAR|ORANGE PEPPER|RUSSET ORANGER|BLAZING ORANGE|ICELAND PUPPY|FLAME ORANGE|BRIGHT MARIGOLD|AUTUMN GLORY|TANGELO|ORIOLE|VIBRANT ORANGE|ORANGE TIGER|EXUBERANCE|DUSTY ORANGE|ORANGE PEEL|CELOSIA ORANGE|EXOTIC ORANGE|NECTARINE|CORAL ROSE|CARROT|SCARLET IBIS|PUFFIN'S BILL|DRAGON FIRE|KOI|FLAME|ORANGEADE|RED ORANGE|TANGERINE TANGO|TIGERLILY|SUMMER FIG|PAPRIKA|RED CLAY|SPICY ORANGE|GRENADINE|CHERRY TOMATO|POINCIANA|AURORA RED|PERSIMMON|CAMELLIA|EMBERGLOW|MANDARIN RED|FIERY RED|VALIANT POPPY|FUSION CORAL|CORAL|CORAL QUARTZ|LIVING CORAL|HOT CORAL|DESERT FLOWER|GEORGIA PEACH|DUBARRY|PORCELAIN ROSE|CRANBERRY|ROSE OF SHARON|CAYENNE|POINSETTIA|CHRYSANTHEMUM|CARDINAL|TOMATO PUREE|BITTERSWEET|ROCOCCO RED|TOMATO|HIBISCUS|SCARLET|SALSA|AURA ORANGE|GOJI BERRY|HAUTE RED|RED ALERT|FIRE WHIRL|FLAME SCARLET|EQUESTRIAN RED|POPPY RED|CHINESE RED|RIBBON RED|SAMBA|SKI PATROL|TOREADOR|LYCHEE|CRIMSON|JESTER RED|MARS RED|TANGO RED|SCOOTER|CHILI PEPPER|SAVVY RED|KARANDA RED|EMBOLDENED|WINERY|RHYTHMIC RED|NEW MAROON|BIKING RED|MERLOT|RED DAHLIA|SYRAH|ANDORRA|RUBY WINE|TIBETAN RED|CORDOVAN|CABERNET|RED MAHOGANY|COWHIDE|BURNT RUSSET|POMEGRANATE|ZINFANDEL|TAWNY PORT|RIO RED|DEEP CLARET|RUMBA RED|MAUVEGLOW|DESERT ROSE|RAPTURE ROSE|BAROQUE ROSE|HOLLY BERRY|GARNET ROSE|CANDY PINK|PEONY|QUARTZ PINK|PINK ICING|CONCH SHELL|SALMON ROSE|BRIDAL ROSE|BLUSH|STRAWBERRY|TEA ROSE|MINERAL RED|ROSE TAN|DUSTY ROSE|ASH ROSE|CANYON ROSE|ROSE SMOKE|MISTY ROSE|PEACH BEIGE|WITHERED ROSE|APPLE BUTTER|MELLOW ROSE|ROSETTE|CEDAR WOOD|BURLWOOD|PEACH MELBA|TROPICAL PEACH|PEACH PEARL|PEACH AMBER|GOSSAMER PINK|ENGLISH ROSE|IMPATIENS PINK|POWDER PINK|BLOSSOM|PEACHES CREAM|CORAL ALMOND|BERRY CREAM|CRYSTAL ROSE|TICKLED PINK|FLAMINGO PLUME|DIANTHUS|SEASHELL PINK|CHINTZ ROSE|PINK SALT|ROSE QUARTZ|MUREX SHELL|CARINARIA|PEARL|POTPOURRI|PINK DOLPHIN|DELICACY|HEAVENLY PINK|ROSEWATER|MAUVE MORN|LOTUS|MARY'S ROSE|MAUVE CHALK|PRIMROSE PINK|PALE LILAC|ROMANCE ROSE|PINK A BOO|CALCITE|CRADLE PINK|ORCHID ICE|LIGHT LILAC|LILAC SNOW|CORSAGE|PINK LADY|SWEET DREAMS|LILAC SACHET|PIROUETTE|PINK TULLE|NOSEGAY|PINK FROSTING|PINK POWER|GIN FIZZ|BUBBLEGUM|CAMELLIA ROSE|FRUIT DOVE|RETHINK PINK|CONFETTI|PARTY PUNCH|CALYPSO CORAL|WINTERBERRY|WATERMELON|VIVA MAGENTA|PLUMERIA|PARADISE PINK|GERANIUM|TEABERRY|HONEYSUCKLE|RASPBERRY WINE|ROSE RED|BARBERRY|AZALEA|BRIGHT ROSE|LOVE POTION|CERISE|PERSIAN RED|RED BUD|HOT PINK|GRANITA|SANGRIA|ANEMONE|MORNING GLORY|AZALEA PINK|FANDANGO PINK|PINK FLAME|CARMINE|SACHET PINK|PINK CARNATION|WILD ORCHID|IBIS ROSE|FUCHISIA PINK|FIJI FLOWER|LILAC ROSE|CHATEAU ROSE|FUCHSIA ROSE|SANGRIA SUNSET|PINK YARROW|INNUENDO|CONE FLOWER|CABARET|PINK PEACOCK|ROSE VIOLET|CACTUS FLOWER|MAGENTA HAZE|BATON ROUGE|BOYSENBERRY|PHLOX PINK|PURPLE POTION|PLUM CASPIA|PURPLE ORCHID|VIVID VIOLA|WILD ASTER|CLOVER|DAHLIA|HOLLYHOCK|BYZANTIUM|GLOXINIA|MULBERRY|IRIS ORCHID|SPARKLING GRAPE|GRAPE JUICE|CROCUS|BODACIOUS|AMETHYST|PHALAENOPSIS|VIOLET|LIATRIS|BEAUTYBERRY|ORCHID BOUQUET|VIOLET TULLE|LILAC CHIFFON|CYCLAMEN|OPERA MAUVE|MOONLITE MAUVE|CASHMERE ROSE|SEA PINK|ZEPHYR|POLIGNAC|DUSKY ORCHID|MESA ROSE|MAUVEWOOD|DRY ROSE|ROSE WINE|HEATHER ROSE|MALAGA|BEAUJOLAIS|BEET RED|RHODODENDRON|NOSTALGIA ROSE|WISTFUL MAUVE|KEEPSAKE LILAC|MAUVE SHADOWS|ELDERBERRY|GRAPE SHAKE|GRAY LILAC|VIOLET ICE|SHADOW GRAY|FAWN|ANTLER";
    bytes private constant COLOR_RGBS_9 = hex"FFA165FF8D51F38206DF7500F66D15FFA64FFF962FFF8B1FFF8D00FF8812FF7E02FF7913FF7420FF650EE86800F17344FF7930F86A2AFF622BFF8656FF7141FF6E39FF5015FB550EFF632AE34D25FF4D1FF44B1AFF4E18F03411F34D2DD13D28E03E30D4391BEA2E13F13020FD2E15DC2610CB2A20FF715DFF6E56F85C4BF83D22E20A0ECD221BFF8576F96D5EFF6E5CFF6F61FF5047FF9687FF6C6CFF525AF75E5DCE373BEB4C55F03943DE2131D1323FBF2C3AD82038EB2535CD242FE1162AEE273ACD1A30B90920C4161BC8031DAF091FE32319B72920DF0F1AAB081EEE222BCE0322CA1529B11523CA032EC50129C5002CBC002FAB0329CD1622BA0026A11129A90D27A2081F9A1C2D9B12228A15209915267727308216267D1B2289141D751D226B2A2A842631841E327C23336E1A276B2C359734358C2B35771D29661F3066222F971529A62538881833DE777EDE5A6CE0536EC54859C73B50BF3846FCA9B9F693A2F79EA3F6989FFF8C99FF8D94E09599DC8B90F28187E9646CC64146DC938CC96A70C4746EC05D56DCAEA4D69C8EDE9B8CB45454943B3FE39E97DA837FB45748AE6358FFBAABFFC4B2FFB2A5FF9C8FFFC4BEF9C1BEFFC4BCF3ABACF9ACA7FC9F9BEC958AF9BEBFFFC1C4FDB3BEEA7784FF94A3FCC4BDF4BFB8FCC9C2FCC6C4FF9C9DF7DADCFCD8D5EDC3C5F0A7B0F8E0DFF7DBDBFAD8D4F1D2D2E9BBB9FBCDD1EBCBC9F3D0D6E8BFC8EFADBFFBC9DAEFD7E0F2CBDCE6CADDE5BFD4E7C0D9E3ACC8F5BBD5F5B8D3F1A5CAF3B8DEF5C4E2F6B7D5F9A2CBE45890DB4B87F66786F8537ADE4B70D92956F26D87D7375CFC4F61D12643D92742CC1540FF8C9FF43453EB2C4DEE264AE93F68C82549DB1149CF093DE71B52D60855D0034EB20443B0063CA51E42F34B7CB4144BA6174E911F43F9769AF65D93F03F7BE34074CF3561FB80AAF86F9AE66CA0DA528DEA7DB8D9579FD02F72E06589D93171F6568FE11E72D7205BD44887DE2070D71066D32F8DB92D6AAE336DA72C6D93245CDE4E9B741C456B184DC03A92A92C82A12273982577932F91902477932D866D2361B95A9FB955B1842682731E69D373B8C75BAB963D7BDF96D1CE73C5BE58AE973584DAA4DED287D3E993D0E67FC8DA74BEDE84B6DB7A9BEB8EA9D597A3D07994AC5F7FB85C70BE49629C3751B74664BE5C78B13E628D23488514397E1F3AB56672A75969CB9AAAC28BA0AE738B9A5768DDC5D6CDA1ABC69D94BC8982A76C64";
    uint96 private constant COLOR_TOTAL_AMOUNT_9 = 298 * 9;

    bytes private constant COLOR_NAMES_28 = "WHITE|BLACK";
    bytes private constant COLOR_RGBS_28 = hex"FFFFFF000000";
    uint96 private constant COLOR_TOTAL_AMOUNT_28 = 2 * 28;

    function totalAmount() public pure override returns (uint96) {
        return COLOR_TOTAL_AMOUNT_7 + COLOR_TOTAL_AMOUNT_28 + COLOR_TOTAL_AMOUNT_8 + COLOR_TOTAL_AMOUNT_9;
    }

    function getColor(uint128 id) public pure override returns (Color memory) {
        uint96 accAmount = 0;

        if (id < accAmount + COLOR_TOTAL_AMOUNT_7) {
            id -= accAmount;
            return _getColor(COLOR_NAMES_7, COLOR_RGBS_7, id / 7);
        }
        accAmount += COLOR_TOTAL_AMOUNT_7;

        if (id < accAmount + COLOR_TOTAL_AMOUNT_8) {
            id -= accAmount;
            return _getColor(COLOR_NAMES_8, COLOR_RGBS_8, id / 8);
        }
        accAmount += COLOR_TOTAL_AMOUNT_8;

        if (id < accAmount + COLOR_TOTAL_AMOUNT_9) {
            id -= accAmount;
            return _getColor(COLOR_NAMES_9, COLOR_RGBS_9, id / 9);
        }
        accAmount += COLOR_TOTAL_AMOUNT_9;

        if (id < accAmount + COLOR_TOTAL_AMOUNT_28) {
            id -= accAmount;
            return _getColor(COLOR_NAMES_28, COLOR_RGBS_28, id / 28);
        }
        accAmount += COLOR_TOTAL_AMOUNT_28;

        revert("ColorProviderAlpha: color index exceeds boundary");
    }
}

File 2 of 3 : IColorProvider.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

import "./Color.sol";

abstract contract IColorProvider {
    function totalAmount() public pure virtual returns (uint96);
    function getColor(uint128 id) public pure virtual returns (Color memory);

    bytes16 private constant HEX_ALPHABET = "0123456789ABCDEF";

    function _getColor(
        bytes memory names,
        bytes memory rgbs,
        uint128 index
    ) internal pure returns (Color memory) {
        return Color({
            rgb: string(getColorRgb(rgbs, index)), 
            name: string(getColorName(names, index))
        });
    }

    function getColorName(bytes memory names, uint128 index) internal pure returns (bytes memory) {
        bytes memory result;
        uint256 startIndex = 0;
        uint256 endIndex = 0;

        // Find start index
        for (; startIndex < names.length && index > 0; startIndex++) {
            if (names[startIndex] != "|") continue;

            index--;
        }

        // Find end index. Either next delimeter or terminator.
        for (endIndex = startIndex + 1; endIndex < names.length && names[endIndex] != "|"; endIndex++) {}

        for (; startIndex < endIndex; startIndex++) {
            result = abi.encodePacked(result, names[startIndex]);
        }

        return result;
    }

    function getColorRgb(bytes memory rgbs, uint128 index) internal pure returns (bytes memory) {
        uint256 startIndex = 3 * uint256(index);

        return abi.encodePacked(
            HEX_ALPHABET[(uint8(rgbs[startIndex + 0]) >> 4) & 0xF],
            HEX_ALPHABET[uint8(rgbs[startIndex + 0]) & 0xF],
            HEX_ALPHABET[(uint8(rgbs[startIndex + 1]) >> 4) & 0xF],
            HEX_ALPHABET[uint8(rgbs[startIndex + 1]) & 0xF],
            HEX_ALPHABET[(uint8(rgbs[startIndex + 2]) >> 4) & 0xF],
            HEX_ALPHABET[uint8(rgbs[startIndex + 2]) & 0xF]);
    }
}

File 3 of 3 : Color.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

struct Color {
    string rgb;
    string name;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint128","name":"id","type":"uint128"}],"name":"getColor","outputs":[{"components":[{"internalType":"string","name":"rgb","type":"string"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct Color","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalAmount","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b50612f3d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631a39d8ef1461003b578063a5d77bae14610065575b600080fd5b610043610085565b6040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b6100786100733660046108cc565b6100b3565b60405161005c9190610978565b6000610a7a6108d861009a60386101f8610a07565b6100a49190610a07565b6100ae9190610a07565b905090565b604080518082019091526060808252602082015260006100d56101f882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161015610166576101146bffffffffffffffffffffffff821684610a37565b925061015f6040518061032001604052806102e58152602001610f8b6102e5913960405180610100016040528060d8815260200161127060d8913961015a600787610a68565b610418565b9392505050565b6101726101f882610a07565b90506101806108d882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161015610207576101bf6bffffffffffffffffffffffff821684610a37565b925061015f60405180610bc00160405280610b8d8152602001611699610b8d91396040518061038001604052806103518152602001611348610351913961015a600887610a68565b6102136108d882610a07565b9050610221610a7a82610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1610156102a8576102606bffffffffffffffffffffffff821684610a37565b925061015f60405180610d200160405280610ce28152602001612226610ce29139604051806103a0016040528061037e8152602001610c0d61037e913961015a600987610a68565b6102b4610a7a82610a07565b90506102c1603882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16101561037e576103006bffffffffffffffffffffffff821684610a37565b925061015f6040518060400160405280600b81526020017f57484954457c424c41434b0000000000000000000000000000000000000000008152506040518060400160405280600681526020017fffffff0000000000000000000000000000000000000000000000000000000000815250601c8661015a9190610a68565b610389603882610a07565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f436f6c6f7250726f7669646572416c7068613a20636f6c6f7220696e6465782060448201527f6578636565647320626f756e6461727900000000000000000000000000000000606482015290915060840160405180910390fd5b60408051808201909152606080825260208201526040518060400160405280610441858561045a565b81526020016104508685610726565b9052949350505050565b6060600061047b6fffffffffffffffffffffffffffffffff84166003610abe565b90507f30313233343536373839414243444546000000000000000000000000000000006004856104ac846000610afb565b815181106104bc576104bc610b13565b60209101015160f81c901c600f16601081106104da576104da610b13565b1a60f81b7f30313233343536373839414243444546000000000000000000000000000000008561050b846000610afb565b8151811061051b5761051b610b13565b60209101015160f81c600f166010811061053757610537610b13565b1a60f81b7f303132333435363738394142434445460000000000000000000000000000000060048761056a866001610afb565b8151811061057a5761057a610b13565b60209101015160f81c901c600f166010811061059857610598610b13565b1a60f81b7f3031323334353637383941424344454600000000000000000000000000000000876105c9866001610afb565b815181106105d9576105d9610b13565b60209101015160f81c600f16601081106105f5576105f5610b13565b1a60f81b7f3031323334353637383941424344454600000000000000000000000000000000600489610628886002610afb565b8151811061063857610638610b13565b60209101015160f81c901c600f166010811061065657610656610b13565b1a60f81b7f303132333435363738394142434445460000000000000000000000000000000089610687886002610afb565b8151811061069757610697610b13565b60209101015160f81c600f16601081106106b3576106b3610b13565b6040517fff00000000000000000000000000000000000000000000000000000000000000978816602082015295871660218701529386166022860152918516602385015284166024840152901a60f81b909116602582015260260160405160208183030381529060405291505092915050565b6060806000805b85518210801561074f57506000856fffffffffffffffffffffffffffffffff16115b156107d95785828151811061076657610766610b13565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7c00000000000000000000000000000000000000000000000000000000000000146107b9576107c7565b846107c381610b42565b9550505b816107d181610b8c565b92505061072d565b6107e4826001610afb565b90505b855181108015610850575085818151811061080457610804610b13565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7c0000000000000000000000000000000000000000000000000000000000000014155b15610867578061085f81610b8c565b9150506107e7565b808210156108c2578286838151811061088257610882610b13565b602001015160f81c60f81b60405160200161089e929190610bc5565b604051602081830303815290604052925081806108ba90610b8c565b925050610867565b5090949350505050565b6000602082840312156108de57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461015f57600080fd5b60005b83811015610919578181015183820152602001610901565b83811115610928576000848401525b50505050565b600081518084526109468160208601602086016108fe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000825160406020840152610994606084018261092e565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160408501526109cf828261092e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff808316818516808303821115610a2e57610a2e6109d8565b01949350505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015610a6057610a606109d8565b039392505050565b60006fffffffffffffffffffffffffffffffff80841680610ab2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610af657610af66109d8565b500290565b60008219821115610b0e57610b0e6109d8565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006fffffffffffffffffffffffffffffffff821680610b6457610b646109d8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bbe57610bbe6109d8565b5060010190565b60008351610bd78184602088016108fe565b7fff0000000000000000000000000000000000000000000000000000000000000093909316919092019081526001019291505056feffa165ff8d51f38206df7500f66d15ffa64fff962fff8b1fff8d00ff8812ff7e02ff7913ff7420ff650ee86800f17344ff7930f86a2aff622bff8656ff7141ff6e39ff5015fb550eff632ae34d25ff4d1ff44b1aff4e18f03411f34d2dd13d28e03e30d4391bea2e13f13020fd2e15dc2610cb2a20ff715dff6e56f85c4bf83d22e20a0ecd221bff8576f96d5eff6e5cff6f61ff5047ff9687ff6c6cff525af75e5dce373beb4c55f03943de2131d1323fbf2c3ad82038eb2535cd242fe1162aee273acd1a30b90920c4161bc8031daf091fe32319b72920df0f1aab081eee222bce0322ca1529b11523ca032ec50129c5002cbc002fab0329cd1622ba0026a11129a90d27a2081f9a1c2d9b12228a15209915267727308216267d1b2289141d751d226b2a2a842631841e327c23336e1a276b2c359734358c2b35771d29661f3066222f971529a62538881833de777ede5a6ce0536ec54859c73b50bf3846fca9b9f693a2f79ea3f6989fff8c99ff8d94e09599dc8b90f28187e9646cc64146dc938cc96a70c4746ec05d56dcaea4d69c8ede9b8cb45454943b3fe39e97da837fb45748ae6358ffbaabffc4b2ffb2a5ff9c8fffc4bef9c1beffc4bcf3abacf9aca7fc9f9bec958af9bebfffc1c4fdb3beea7784ff94a3fcc4bdf4bfb8fcc9c2fcc6c4ff9c9df7dadcfcd8d5edc3c5f0a7b0f8e0dff7dbdbfad8d4f1d2d2e9bbb9fbcdd1ebcbc9f3d0d6e8bfc8efadbffbc9daefd7e0f2cbdce6cadde5bfd4e7c0d9e3acc8f5bbd5f5b8d3f1a5caf3b8def5c4e2f6b7d5f9a2cbe45890db4b87f66786f8537ade4b70d92956f26d87d7375cfc4f61d12643d92742cc1540ff8c9ff43453eb2c4dee264ae93f68c82549db1149cf093de71b52d60855d0034eb20443b0063ca51e42f34b7cb4144ba6174e911f43f9769af65d93f03f7be34074cf3561fb80aaf86f9ae66ca0da528dea7db8d9579fd02f72e06589d93171f6568fe11e72d7205bd44887de2070d71066d32f8db92d6aae336da72c6d93245cde4e9b741c456b184dc03a92a92c82a12273982577932f91902477932d866d2361b95a9fb955b1842682731e69d373b8c75bab963d7bdf96d1ce73c5be58ae973584daa4ded287d3e993d0e67fc8da74bede84b6db7a9beb8ea9d597a3d07994ac5f7fb85c70be49629c3751b74664be5c78b13e628d23488514397e1f3ab56672a75969cb9aaac28ba0ae738b9a5768ddc5d6cda1abc69d94bc8982a76c64425252494c49414e542057484954457c4c5543454e542057484954457c434c4f55442044414e4345527c434f434f4e5554204d494c4b7c544f46557c5355474152205357495a5a4c457c42524947485457484954457c4d415253484d414c4c4f577c43414e4e4f4c49435245414d7c45475245547c5052495354494e457c4547474e4f477c47415244454e49417c42495243487c414e54495155452057484954457c53454544504541524c7c5748495445205357414e7c50415243484d454e547c4645415448455220475241597c4f58464f52442054414e7c48554d55537c5748495445204f4e59587c53494c5645522042495243487c4f564552434153547c504c415a412054415550457c494349434c457c4c4947485420475241597c53494c56455220475245454e7c414c46414c46417c4d4f535320475241597c414741544520475241597c41424245592053544f4e457c545552544c45444f56457c50495354414348494f7c434153544c452057414c4c7c544944414c20464f414d7c455543414c59505455537c535052415920475245454e7c4d4f54487c475245454e2048415a457c4649454c4453204f46205259457c53454e45434120524f434b7c53494c56455220534147457c50555454597c4c454d4f4e205045505045527c494e43454e53457c434f524e5354414c4b7c4b454c507c53455049412054494e547c53454d4f4c494e417c495249534820435245414d7c574f4f44204153487c534156414e4e41482054414e7c5445414b7c56414e494c4c4120435245414d7c4d4f54484552204f4620504541524c7c4c494e454e7c54454e4445522050454143487c4e5544457c50454143482050555241457c414c4553414e7c53554e204b4953537c4e4f56454c4c452050454143487c414d4245524c494748547c48415a454c4e55547c534d4f4b4520475241597c43454d454e547c534553414d457c435542414e2053414e447c4e4f4d41447c4d4f4f4e4c494748547c4c49474854205441555045edf1fef4f7fff1eee8f1ede4eae4d7f4efe6f5f7f6f1efe3f1f0e1f4ecdff3e8d9eee3d4f1eadfdfd6c5efe3d0e8dbc2e6d7c3e1d1bcbcae9abca996bba78edbdacfd5d0c1c7bfa7b3a48edbdecedcd7c9d9d9c5bdbda0b4ae92b5b49bb0aa93e0d8c6dad0b8cbc3a8c3bb9fb6ab8db3a88dd5cdaccec6a0bcaa8ba09479998d72d7cbada79677b49b79ae95759e85618f755ad2b995c4ad8edacbadab947ea19079f6d8c4ebd4c1efd2befad5b6f4d3baf1cfb8f3ceb1edd1b9e9cfbbe5be9fd3b091d1baa5c8b6a2bfa386c5a689b99f84c9b19cb69c88c1ab97a5856c997a64aa8c7aad8b75a886709a765e9f766195705f78624e634b3c98846f866e5d6d5b4e72615697857393816a6e62515e5444b5a6948877656253437c6a5a6d5f4ac5bfb3bfb1a4af9f91a49681ddd5cfcdc4bfb7aba9a9a09ca298967e7975b5ada5a29c96868083867c7c645b5b6e3d2a6e66669e9c969690899189808b9191a9b1af969c9681847ad5e0dcd0d6cfb4bbb58c938e666f6d6469605c5f59e2eaebacb2b796a0a7828a8e8183895c5f66d4d4d989919a777781606269c7c4c7babdbdb9bcc1adb1b6a09da797959c84848e80798464656f948e8e837a807d777da69aa0948788706a72938a8f7a7176635a615e596264595b58515aa19c9775757c6865625d565b4d4951685f6a4b3e40544b5040414b45434d48454b3b353c39363c45413b3c3b35493f38252d2a4c3d324b413841342a443836372f304f3f3a40352e41302e5a413d4a3a383c2f2e352829593f385b3d356e39286f382e622b287b352f8a372e75241f76282574302dac563fb94d37b1432aa73f3ba02b238b2f22b44a39ad4d31963b248e402b7b442da856319a542f96462d824227a46a4d98584495553ca0563f9c5a498e57427f51337d4d2a824e2c68442f744626774f4264432ba46f54a26b508a55387a4831be8764c38861bf815bbf8255be7e54b26e3dc59576bf8b71c18059b67152ebc5b1e8b7a0d0997bcc9277ca7f61edccc1e0b4a2d8ae9bd19c87f1e3dbf2ded8f5dfddf7d9cff7ddd3f5e5daf9e4d8f2e0d9f3decce6cabfeac8c0f7dfd2f5d6c7f7d6c8ffd6c5f3cabcf9cbc0fbd2c8eab8abecbbabe5ab98e8a491fbc7aaf0ac87e9ae91df9676df8c73f5d0a7f0be85ca8d57e0a164b45e2a9f531da6541ce6976fd67f53c56b44b86034c16d3dd48659d47743cb6a3dc85f39b04f16a14612d04a32c54c2dad4015b132179b361fd35e49c35742b0352fa62c27a92c1eee8579dc7a69e7726dcf5454bf4b4bc63333ed947be17561d74f41bd422fde704de16642db6245f48073e17969ee6944cd4423ffa086ffb59bff9f7cff9780ff916bffa177ff8762ffd1bcffbca1ffa78ff69069ffbe98ffb891ffab7effb181ffaa7affa564ffcda8feb68cec8957e27746ffc093f7a86eeb9a5deb9552d97631c6541fd77232db6120c44f12e85b1efa9051ed752dea6727d46005444f45534b494e7c414d50484f52417c504f52544142454c4c417c53545543434f7c414c4d4f4e44494e457c4348414e544552454c4c457c574f4f44534d4f4b457c424541564552204655527c42524f574e49457c53484954414b457c5241494e204452554d7c4752454947457c464f5353494c7c4d4f52454c7c46414c434f4e7c4341534845577c54494d42455220574f4c467c42554e47454520434f52447c5441524d41437c5055524520434153484d4552457c4252494e444c457c43414e5445454e7c57414c4e55547c53544f4e4520475241597c4d4f4f4e53545255434b7c4348415445415520475241597c535452494e477c414c554d494e554d7c57484954452053414e447c57494e44204348494d457c4153484553204f4620524f53457c504f52504f4953457c4153487c53494c454e542053544f524d7c444f56457c464c494e5420475241597c46524f535420475241597c434c4f554442555253547c4441524b2047554c4c20475241597c544952414d4953557c43484152434f414c20475241597c47484f535420475241597c4d4f55524e494e4720444f56457c454c455048414e5420534b494e7c4752494646494e7c4d495241474520475241597c4c494d4553544f4e457c4d4f4f4e204d4953547c424c554520424c5553487c464f474759204445577c53544f524d20475241597c4e45555452414c20475241597c5345444f4e4120534147457c434153544f5220475241597c47554e4d4554414c7c424954204f4620424c55457c4849474820524953457c5155415252597c4d4f4e554d454e547c534841524b534b494e7c4c41564120534d4f4b457c4e494d42555320434c4f55447c5745415448455256414e457c4e49474854204f574c7c504f50505920534545447c414e54415243544943417c475241592056494f4c45547c4d4943524f20434849507c484152424f52204d4953547c53494c5645522053434f4e43457c414c4c4f597c534b59524f434b45547c53494c5645522046494c49475245457c51554945542053484144457c57455420574541544845527c544954414e49554d7c47524159205155494c4c7c47554c4c20475241597c5a494e437c4349545920534b594c494e457c47554c4c7c53544f524d2046524f4e547c564f4c43414e494320474c4153537c544f524e41444f7c504c554d204b495454454e7c424f554c45564152447c50414c4f4d417c4d4f434b494e47424952447c5045575445527c5448554e44455253544f524d7c4d41474e45547c455843414c494255527c5348414c457c504156454d454e547c45424f4e597c5045524953434f50457c464f524745442049524f4e7c4f4253494449414e7c5048414e544f4d7c424c41434b20494e4b7c504541547c5455524b49534820434f464645457c4a4554205345547c534c41544520424c41434b7c5752454e7c44454d4954415353457c4d554c43487c455350524553534f7c43484f434f4c4154457c44454c4943494f534f7c434f46464545204245414e7c4652454e434820524f4153547c5345414c2042524f574e7c424c41434b20434f464645457c47414e414348457c43484553544e55547c524f434b5920524f41447c43415050554343494e4f7c46554447455349434b4c457c52554d2052414953494e7c5341424c457c48454e4e417c464952454420425249434b7c4d41444445522042524f574e7c484f542043484f434f4c4154457c434f505045522042524f574e7c425255534348455454417c4255524e5420425249434b7c4d415253414c417c524544204f434852457c4255524e542048454e4e417c455452555343414e205245447c42414b454420434c41597c4152414249414e2053504943457c534551554f49417c46524941522042524f574e7c5349455252417c415247414e204f494c7c434f434f4e5554205348454c4c7c544f52544f495345205348454c4c7c52415720554d4245527c434c4f56457c4341524f422042524f574e7c5255535345547c434f474e41437c41434f524e7c5041525452494447457c444143485348554e447c544f464645457c4341524146457c454d50455241444f527c434f464645452051554152545a7c434f434f417c53494e4f5049412046524553434f7c43484f434f4c415445204d414c547c504543414e205049457c534f46542053494c547c5052414c494e457c4d414341524f4f4e7c5441574e592042495243487c494e4449414e2054414e7c4d414343484941544f7c4c494f4e7c4e4f554741547c524f454255434b7c43414d454c7c4d4f434841204d4f555353457c435245414d2054414e7c5350414e4953482056494c4c417c5349524f43434f7c54555343414e597c434f524b7c53494c5645522050454f4e597c43414d454f20524f53457c524f534520445553547c4d41484f47414e5920524f53457c534c494748544c592050494e4b7c434f434f4e555420435245414d7c504554414c2050494e4b7c53414c534120524f53417c414e47454c2057494e477c5345412053414c547c53484545522050494e4b7c42524944414c20424c5553487c4445577c4d4f5247414e4954457c504541434820424c5553487c504f5744455220505546467c504541434820445553547c534f46542050494e4b7c5343414c4c4f50205348454c4c7c50414c4520444f47574f4f447c504541524c20424c5553487c435245524f4c452050494e4b7c504541434859204b45454e7c50414c4520424c5553487c524f534520434c4f55447c44555354592050494e4b7c42454c4c494e497c5045414348204e4f554741547c50494e4b2053414e447c445553545920434f52414c7c4d5554454420434c41597c415554554d4e20424c4f4e44457c474f4c44454e2053545241577c444f457c434c41597c41444f42457c474c415a45442047494e4745527c4c4541544845522042524f574e7c504541434820424c4f4f4d7c5048454153414e547c53554e4255524e7c414d4245522042524f574e7c48415a454c7c53414e4453544f4e457c434152414d454c7c524157205349454e4e417c415554554d4e204c4541467c415554554d4e414c7c554d4245527c4d45434341204f52414e47457c415554554d4e20474c415a457c504f54544552275320434c41597c524f4f49424f53205445417c504943414e54457c41505249434f54204252414e44597c415241474f4e7c54414e444f4f52492053504943457c424f535341204e4f56417c4b4554434855507c434f52414c2048415a457c43414e594f4e20434c41597c4c414e54414e417c464144454420524f53457c44555354592043454441527c42414b4544204150504c457c534852494d507c5441574e59204f52414e47457c4255524e54205349454e4e417c484f542053415543457c4341524e454c49414e7c4152414245535155457c4c414e474f555354494e4f7c4255524e5420434f52414c7c544552524120434f5454417c464c414d494e474f7c4255524e54204f434852457c5041504159412050554e43487c5045414348204e45435441527c434f52414c20524545467c50454143482050494e4b7c4341444d49554d204f52414e47457c43414e54414c4f5550457c4d454c4f4e7c50414c452050454143487c504541434820504152464149547c53414c4d4f4e7c5348454c4c20434f52414c7c50454143482046555a5a7c42454143482053414e447c41505249434f5420574153487c504541434820434f42424c45527c53414c4d4f4e20425546467c50554d504b494e7c435245414d505546467c50454143482051554152545a7c434f505045522054414e7c434f52414c20474f4c447c435245414d20424c5553487c41505249434f54204e45435441527c474f4c442045415254487c41505249434f542054414e7c474f4c44454e204f434852457c525553547c544f4d41544f20435245414d7c4255524e54204f52414e47457c474f4c4420464c414d457c484152564553542050554d504b494e7c4d55534b4d454c4f4e7c414d424552474c4f577c4a41464641204f52414e47457c415554554d4e204d41504c455041504159417c54414e474552494e457c4441524b20434845444441527c4f52414e4745205045505045527c525553534554204f52414e4745527c424c415a494e47204f52414e47457c4943454c414e442050555050597c464c414d45204f52414e47457c425249474854204d415249474f4c447c415554554d4e20474c4f52597c54414e47454c4f7c4f52494f4c457c56494252414e54204f52414e47457c4f52414e47452054494745527c455855424552414e43457c4455535459204f52414e47457c4f52414e4745205045454c7c43454c4f534941204f52414e47457c45584f544943204f52414e47457c4e4543544152494e457c434f52414c20524f53457c434152524f547c534341524c455420494249537c50554646494e27532042494c4c7c445241474f4e20464952457c4b4f497c464c414d457c4f52414e47454144457c524544204f52414e47457c54414e474552494e452054414e474f7c54494745524c494c597c53554d4d4552204649477c50415052494b417c52454420434c41597c5350494359204f52414e47457c4752454e4144494e457c43484552525920544f4d41544f7c504f494e4349414e417c4155524f5241205245447c50455253494d4d4f4e7c43414d454c4c49417c454d424552474c4f577c4d414e444152494e205245447c4649455259205245447c56414c49414e5420504f5050597c465553494f4e20434f52414c7c434f52414c7c434f52414c2051554152545a7c4c4956494e4720434f52414c7c484f5420434f52414c7c44455345525420464c4f5745527c47454f524749412050454143487c445542415252597c504f5243454c41494e20524f53457c4352414e42455252597c524f5345204f4620534841524f4e7c434159454e4e457c504f494e5345545449417c4348525953414e5448454d554d7c43415244494e414c7c544f4d41544f2050555245457c42495454455253574545547c524f434f43434f205245447c544f4d41544f7c48494249534355537c534341524c45547c53414c53417c41555241204f52414e47457c474f4a492042455252597c4841555445205245447c52454420414c4552547c4649524520574849524c7c464c414d4520534341524c45547c4551554553545249414e205245447c504f505059205245447c4348494e455345205245447c524942424f4e205245447c53414d42417c534b4920504154524f4c7c544f524541444f527c4c59434845457c4352494d534f4e7c4a4553544552205245447c4d415253205245447c54414e474f205245447c53434f4f5445527c4348494c49205045505045527c5341565659205245447c4b4152414e4441205245447c454d424f4c44454e45447c57494e4552597c52485954484d4943205245447c4e4557204d41524f4f4e7c42494b494e47205245447c4d45524c4f547c524544204441484c49417c53595241487c414e444f5252417c525542592057494e457c5449424554414e205245447c434f52444f56414e7c43414245524e45547c524544204d41484f47414e597c434f57484944457c4255524e54205255535345547c504f4d454752414e4154457c5a494e46414e44454c7c5441574e5920504f52547c52494f205245447c4445455020434c415245547c52554d4241205245447c4d41555645474c4f577c44455345525420524f53457c5241505455524520524f53457c4241524f51554520524f53457c484f4c4c592042455252597c4741524e455420524f53457c43414e44592050494e4b7c50454f4e597c51554152545a2050494e4b7c50494e4b204943494e477c434f4e4348205348454c4c7c53414c4d4f4e20524f53457c42524944414c20524f53457c424c5553487c535452415742455252597c54454120524f53457c4d494e4552414c205245447c524f53452054414e7c445553545920524f53457c41534820524f53457c43414e594f4e20524f53457c524f534520534d4f4b457c4d4953545920524f53457c50454143482042454947457c574954484552454420524f53457c4150504c45204255545445527c4d454c4c4f5720524f53457c524f53455454457c434544415220574f4f447c4255524c574f4f447c5045414348204d454c42417c54524f504943414c2050454143487c504541434820504541524c7c504541434820414d4245527c474f5353414d45522050494e4b7c454e474c49534820524f53457c494d50415449454e532050494e4b7c504f574445522050494e4b7c424c4f53534f4d7c5045414348455320435245414d7c434f52414c20414c4d4f4e447c424552525920435245414d7c4352595354414c20524f53457c5449434b4c45442050494e4b7c464c414d494e474f20504c554d457c4449414e544855537c5345415348454c4c2050494e4b7c4348494e545a20524f53457c50494e4b2053414c547c524f53452051554152545a7c4d55524558205348454c4c7c434152494e415249417c504541524c7c504f54504f555252497c50494e4b20444f4c5048494e7c44454c49434143597c48454156454e4c592050494e4b7c524f534557415445527c4d41555645204d4f524e7c4c4f5455537c4d415259275320524f53457c4d41555645204348414c4b7c5052494d524f53452050494e4b7c50414c45204c494c41437c524f4d414e434520524f53457c50494e4b204120424f4f7c43414c434954457c435241444c452050494e4b7c4f5243484944204943457c4c49474854204c494c41437c4c494c414320534e4f577c434f52534147457c50494e4b204c4144597c535745455420445245414d537c4c494c4143205341434845547c5049524f55455454457c50494e4b2054554c4c457c4e4f53454741597c50494e4b2046524f5354494e477c50494e4b20504f5745527c47494e2046495a5a7c425542424c4547554d7c43414d454c4c494120524f53457c465255495420444f56457c52455448494e4b2050494e4b7c434f4e46455454497c50415254592050554e43487c43414c5950534f20434f52414c7c57494e54455242455252597c57415445524d454c4f4e7c56495641204d4147454e54417c504c554d455249417c50415241444953452050494e4b7c474552414e49554d7c54454142455252597c484f4e45595355434b4c457c5241535042455252592057494e457c524f5345205245447c42415242455252597c415a414c45417c42524947485420524f53457c4c4f564520504f54494f4e7c4345524953457c5045525349414e205245447c524544204255447c484f542050494e4b7c4752414e4954417c53414e475249417c414e454d4f4e457c4d4f524e494e4720474c4f52597c415a414c45412050494e4b7c46414e44414e474f2050494e4b7c50494e4b20464c414d457c4341524d494e457c5341434845542050494e4b7c50494e4b204341524e4154494f4e7c57494c44204f52434849447c4942495320524f53457c46554348495349412050494e4b7c46494a4920464c4f5745527c4c494c414320524f53457c4348415445415520524f53457c4655434853494120524f53457c53414e475249412053554e5345547c50494e4b20594152524f577c494e4e55454e444f7c434f4e4520464c4f5745527c434142415245547c50494e4b20504541434f434b7c524f53452056494f4c45547c43414354555320464c4f5745527c4d4147454e54412048415a457c4241544f4e20524f5547457c424f5953454e42455252597c50484c4f582050494e4b7c505552504c4520504f54494f4e7c504c554d204341535049417c505552504c45204f52434849447c56495649442056494f4c417c57494c442041535445527c434c4f5645527c4441484c49417c484f4c4c59484f434b7c42595a414e5449554d7c474c4f58494e49417c4d554c42455252597c49524953204f52434849447c535041524b4c494e472047524150457c4752415045204a554943457c43524f4355537c424f444143494f55537c414d4554485953547c5048414c41454e4f505349537c56494f4c45547c4c4941545249537c42454155545942455252597c4f524348494420424f55515545547c56494f4c45542054554c4c457c4c494c41432043484946464f4e7c4359434c414d454e7c4f50455241204d415556457c4d4f4f4e4c495445204d415556457c434153484d45524520524f53457c5345412050494e4b7c5a45504859527c504f4c49474e41437c4455534b59204f52434849447c4d45534120524f53457c4d41555645574f4f447c44525920524f53457c524f53452057494e457c4845415448455220524f53457c4d414c4147417c424541554a4f4c4149537c42454554205245447c52484f444f44454e44524f4e7c4e4f5354414c47494120524f53457c5749535446554c204d415556457c4b45455053414b45204c494c41437c4d4155564520534841444f57537c454c44455242455252597c4752415045205348414b457c47524159204c494c41437c56494f4c4554204943457c534841444f5720475241597c4641574e7c414e544c4552a2646970667358221220ddfad9dff4bb24bd6004f86d83cb7b339d662794f1d4dce684fe2156c91fed7a64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c80631a39d8ef1461003b578063a5d77bae14610065575b600080fd5b610043610085565b6040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b6100786100733660046108cc565b6100b3565b60405161005c9190610978565b6000610a7a6108d861009a60386101f8610a07565b6100a49190610a07565b6100ae9190610a07565b905090565b604080518082019091526060808252602082015260006100d56101f882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161015610166576101146bffffffffffffffffffffffff821684610a37565b925061015f6040518061032001604052806102e58152602001610f8b6102e5913960405180610100016040528060d8815260200161127060d8913961015a600787610a68565b610418565b9392505050565b6101726101f882610a07565b90506101806108d882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161015610207576101bf6bffffffffffffffffffffffff821684610a37565b925061015f60405180610bc00160405280610b8d8152602001611699610b8d91396040518061038001604052806103518152602001611348610351913961015a600887610a68565b6102136108d882610a07565b9050610221610a7a82610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1610156102a8576102606bffffffffffffffffffffffff821684610a37565b925061015f60405180610d200160405280610ce28152602001612226610ce29139604051806103a0016040528061037e8152602001610c0d61037e913961015a600987610a68565b6102b4610a7a82610a07565b90506102c1603882610a07565b6bffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16101561037e576103006bffffffffffffffffffffffff821684610a37565b925061015f6040518060400160405280600b81526020017f57484954457c424c41434b0000000000000000000000000000000000000000008152506040518060400160405280600681526020017fffffff0000000000000000000000000000000000000000000000000000000000815250601c8661015a9190610a68565b610389603882610a07565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f436f6c6f7250726f7669646572416c7068613a20636f6c6f7220696e6465782060448201527f6578636565647320626f756e6461727900000000000000000000000000000000606482015290915060840160405180910390fd5b60408051808201909152606080825260208201526040518060400160405280610441858561045a565b81526020016104508685610726565b9052949350505050565b6060600061047b6fffffffffffffffffffffffffffffffff84166003610abe565b90507f30313233343536373839414243444546000000000000000000000000000000006004856104ac846000610afb565b815181106104bc576104bc610b13565b60209101015160f81c901c600f16601081106104da576104da610b13565b1a60f81b7f30313233343536373839414243444546000000000000000000000000000000008561050b846000610afb565b8151811061051b5761051b610b13565b60209101015160f81c600f166010811061053757610537610b13565b1a60f81b7f303132333435363738394142434445460000000000000000000000000000000060048761056a866001610afb565b8151811061057a5761057a610b13565b60209101015160f81c901c600f166010811061059857610598610b13565b1a60f81b7f3031323334353637383941424344454600000000000000000000000000000000876105c9866001610afb565b815181106105d9576105d9610b13565b60209101015160f81c600f16601081106105f5576105f5610b13565b1a60f81b7f3031323334353637383941424344454600000000000000000000000000000000600489610628886002610afb565b8151811061063857610638610b13565b60209101015160f81c901c600f166010811061065657610656610b13565b1a60f81b7f303132333435363738394142434445460000000000000000000000000000000089610687886002610afb565b8151811061069757610697610b13565b60209101015160f81c600f16601081106106b3576106b3610b13565b6040517fff00000000000000000000000000000000000000000000000000000000000000978816602082015295871660218701529386166022860152918516602385015284166024840152901a60f81b909116602582015260260160405160208183030381529060405291505092915050565b6060806000805b85518210801561074f57506000856fffffffffffffffffffffffffffffffff16115b156107d95785828151811061076657610766610b13565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7c00000000000000000000000000000000000000000000000000000000000000146107b9576107c7565b846107c381610b42565b9550505b816107d181610b8c565b92505061072d565b6107e4826001610afb565b90505b855181108015610850575085818151811061080457610804610b13565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7c0000000000000000000000000000000000000000000000000000000000000014155b15610867578061085f81610b8c565b9150506107e7565b808210156108c2578286838151811061088257610882610b13565b602001015160f81c60f81b60405160200161089e929190610bc5565b604051602081830303815290604052925081806108ba90610b8c565b925050610867565b5090949350505050565b6000602082840312156108de57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461015f57600080fd5b60005b83811015610919578181015183820152602001610901565b83811115610928576000848401525b50505050565b600081518084526109468160208601602086016108fe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000825160406020840152610994606084018261092e565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160408501526109cf828261092e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff808316818516808303821115610a2e57610a2e6109d8565b01949350505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015610a6057610a606109d8565b039392505050565b60006fffffffffffffffffffffffffffffffff80841680610ab2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610af657610af66109d8565b500290565b60008219821115610b0e57610b0e6109d8565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006fffffffffffffffffffffffffffffffff821680610b6457610b646109d8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bbe57610bbe6109d8565b5060010190565b60008351610bd78184602088016108fe565b7fff0000000000000000000000000000000000000000000000000000000000000093909316919092019081526001019291505056feffa165ff8d51f38206df7500f66d15ffa64fff962fff8b1fff8d00ff8812ff7e02ff7913ff7420ff650ee86800f17344ff7930f86a2aff622bff8656ff7141ff6e39ff5015fb550eff632ae34d25ff4d1ff44b1aff4e18f03411f34d2dd13d28e03e30d4391bea2e13f13020fd2e15dc2610cb2a20ff715dff6e56f85c4bf83d22e20a0ecd221bff8576f96d5eff6e5cff6f61ff5047ff9687ff6c6cff525af75e5dce373beb4c55f03943de2131d1323fbf2c3ad82038eb2535cd242fe1162aee273acd1a30b90920c4161bc8031daf091fe32319b72920df0f1aab081eee222bce0322ca1529b11523ca032ec50129c5002cbc002fab0329cd1622ba0026a11129a90d27a2081f9a1c2d9b12228a15209915267727308216267d1b2289141d751d226b2a2a842631841e327c23336e1a276b2c359734358c2b35771d29661f3066222f971529a62538881833de777ede5a6ce0536ec54859c73b50bf3846fca9b9f693a2f79ea3f6989fff8c99ff8d94e09599dc8b90f28187e9646cc64146dc938cc96a70c4746ec05d56dcaea4d69c8ede9b8cb45454943b3fe39e97da837fb45748ae6358ffbaabffc4b2ffb2a5ff9c8fffc4bef9c1beffc4bcf3abacf9aca7fc9f9bec958af9bebfffc1c4fdb3beea7784ff94a3fcc4bdf4bfb8fcc9c2fcc6c4ff9c9df7dadcfcd8d5edc3c5f0a7b0f8e0dff7dbdbfad8d4f1d2d2e9bbb9fbcdd1ebcbc9f3d0d6e8bfc8efadbffbc9daefd7e0f2cbdce6cadde5bfd4e7c0d9e3acc8f5bbd5f5b8d3f1a5caf3b8def5c4e2f6b7d5f9a2cbe45890db4b87f66786f8537ade4b70d92956f26d87d7375cfc4f61d12643d92742cc1540ff8c9ff43453eb2c4dee264ae93f68c82549db1149cf093de71b52d60855d0034eb20443b0063ca51e42f34b7cb4144ba6174e911f43f9769af65d93f03f7be34074cf3561fb80aaf86f9ae66ca0da528dea7db8d9579fd02f72e06589d93171f6568fe11e72d7205bd44887de2070d71066d32f8db92d6aae336da72c6d93245cde4e9b741c456b184dc03a92a92c82a12273982577932f91902477932d866d2361b95a9fb955b1842682731e69d373b8c75bab963d7bdf96d1ce73c5be58ae973584daa4ded287d3e993d0e67fc8da74bede84b6db7a9beb8ea9d597a3d07994ac5f7fb85c70be49629c3751b74664be5c78b13e628d23488514397e1f3ab56672a75969cb9aaac28ba0ae738b9a5768ddc5d6cda1abc69d94bc8982a76c64425252494c49414e542057484954457c4c5543454e542057484954457c434c4f55442044414e4345527c434f434f4e5554204d494c4b7c544f46557c5355474152205357495a5a4c457c42524947485457484954457c4d415253484d414c4c4f577c43414e4e4f4c49435245414d7c45475245547c5052495354494e457c4547474e4f477c47415244454e49417c42495243487c414e54495155452057484954457c53454544504541524c7c5748495445205357414e7c50415243484d454e547c4645415448455220475241597c4f58464f52442054414e7c48554d55537c5748495445204f4e59587c53494c5645522042495243487c4f564552434153547c504c415a412054415550457c494349434c457c4c4947485420475241597c53494c56455220475245454e7c414c46414c46417c4d4f535320475241597c414741544520475241597c41424245592053544f4e457c545552544c45444f56457c50495354414348494f7c434153544c452057414c4c7c544944414c20464f414d7c455543414c59505455537c535052415920475245454e7c4d4f54487c475245454e2048415a457c4649454c4453204f46205259457c53454e45434120524f434b7c53494c56455220534147457c50555454597c4c454d4f4e205045505045527c494e43454e53457c434f524e5354414c4b7c4b454c507c53455049412054494e547c53454d4f4c494e417c495249534820435245414d7c574f4f44204153487c534156414e4e41482054414e7c5445414b7c56414e494c4c4120435245414d7c4d4f54484552204f4620504541524c7c4c494e454e7c54454e4445522050454143487c4e5544457c50454143482050555241457c414c4553414e7c53554e204b4953537c4e4f56454c4c452050454143487c414d4245524c494748547c48415a454c4e55547c534d4f4b4520475241597c43454d454e547c534553414d457c435542414e2053414e447c4e4f4d41447c4d4f4f4e4c494748547c4c49474854205441555045edf1fef4f7fff1eee8f1ede4eae4d7f4efe6f5f7f6f1efe3f1f0e1f4ecdff3e8d9eee3d4f1eadfdfd6c5efe3d0e8dbc2e6d7c3e1d1bcbcae9abca996bba78edbdacfd5d0c1c7bfa7b3a48edbdecedcd7c9d9d9c5bdbda0b4ae92b5b49bb0aa93e0d8c6dad0b8cbc3a8c3bb9fb6ab8db3a88dd5cdaccec6a0bcaa8ba09479998d72d7cbada79677b49b79ae95759e85618f755ad2b995c4ad8edacbadab947ea19079f6d8c4ebd4c1efd2befad5b6f4d3baf1cfb8f3ceb1edd1b9e9cfbbe5be9fd3b091d1baa5c8b6a2bfa386c5a689b99f84c9b19cb69c88c1ab97a5856c997a64aa8c7aad8b75a886709a765e9f766195705f78624e634b3c98846f866e5d6d5b4e72615697857393816a6e62515e5444b5a6948877656253437c6a5a6d5f4ac5bfb3bfb1a4af9f91a49681ddd5cfcdc4bfb7aba9a9a09ca298967e7975b5ada5a29c96868083867c7c645b5b6e3d2a6e66669e9c969690899189808b9191a9b1af969c9681847ad5e0dcd0d6cfb4bbb58c938e666f6d6469605c5f59e2eaebacb2b796a0a7828a8e8183895c5f66d4d4d989919a777781606269c7c4c7babdbdb9bcc1adb1b6a09da797959c84848e80798464656f948e8e837a807d777da69aa0948788706a72938a8f7a7176635a615e596264595b58515aa19c9775757c6865625d565b4d4951685f6a4b3e40544b5040414b45434d48454b3b353c39363c45413b3c3b35493f38252d2a4c3d324b413841342a443836372f304f3f3a40352e41302e5a413d4a3a383c2f2e352829593f385b3d356e39286f382e622b287b352f8a372e75241f76282574302dac563fb94d37b1432aa73f3ba02b238b2f22b44a39ad4d31963b248e402b7b442da856319a542f96462d824227a46a4d98584495553ca0563f9c5a498e57427f51337d4d2a824e2c68442f744626774f4264432ba46f54a26b508a55387a4831be8764c38861bf815bbf8255be7e54b26e3dc59576bf8b71c18059b67152ebc5b1e8b7a0d0997bcc9277ca7f61edccc1e0b4a2d8ae9bd19c87f1e3dbf2ded8f5dfddf7d9cff7ddd3f5e5daf9e4d8f2e0d9f3decce6cabfeac8c0f7dfd2f5d6c7f7d6c8ffd6c5f3cabcf9cbc0fbd2c8eab8abecbbabe5ab98e8a491fbc7aaf0ac87e9ae91df9676df8c73f5d0a7f0be85ca8d57e0a164b45e2a9f531da6541ce6976fd67f53c56b44b86034c16d3dd48659d47743cb6a3dc85f39b04f16a14612d04a32c54c2dad4015b132179b361fd35e49c35742b0352fa62c27a92c1eee8579dc7a69e7726dcf5454bf4b4bc63333ed947be17561d74f41bd422fde704de16642db6245f48073e17969ee6944cd4423ffa086ffb59bff9f7cff9780ff916bffa177ff8762ffd1bcffbca1ffa78ff69069ffbe98ffb891ffab7effb181ffaa7affa564ffcda8feb68cec8957e27746ffc093f7a86eeb9a5deb9552d97631c6541fd77232db6120c44f12e85b1efa9051ed752dea6727d46005444f45534b494e7c414d50484f52417c504f52544142454c4c417c53545543434f7c414c4d4f4e44494e457c4348414e544552454c4c457c574f4f44534d4f4b457c424541564552204655527c42524f574e49457c53484954414b457c5241494e204452554d7c4752454947457c464f5353494c7c4d4f52454c7c46414c434f4e7c4341534845577c54494d42455220574f4c467c42554e47454520434f52447c5441524d41437c5055524520434153484d4552457c4252494e444c457c43414e5445454e7c57414c4e55547c53544f4e4520475241597c4d4f4f4e53545255434b7c4348415445415520475241597c535452494e477c414c554d494e554d7c57484954452053414e447c57494e44204348494d457c4153484553204f4620524f53457c504f52504f4953457c4153487c53494c454e542053544f524d7c444f56457c464c494e5420475241597c46524f535420475241597c434c4f554442555253547c4441524b2047554c4c20475241597c544952414d4953557c43484152434f414c20475241597c47484f535420475241597c4d4f55524e494e4720444f56457c454c455048414e5420534b494e7c4752494646494e7c4d495241474520475241597c4c494d4553544f4e457c4d4f4f4e204d4953547c424c554520424c5553487c464f474759204445577c53544f524d20475241597c4e45555452414c20475241597c5345444f4e4120534147457c434153544f5220475241597c47554e4d4554414c7c424954204f4620424c55457c4849474820524953457c5155415252597c4d4f4e554d454e547c534841524b534b494e7c4c41564120534d4f4b457c4e494d42555320434c4f55447c5745415448455256414e457c4e49474854204f574c7c504f50505920534545447c414e54415243544943417c475241592056494f4c45547c4d4943524f20434849507c484152424f52204d4953547c53494c5645522053434f4e43457c414c4c4f597c534b59524f434b45547c53494c5645522046494c49475245457c51554945542053484144457c57455420574541544845527c544954414e49554d7c47524159205155494c4c7c47554c4c20475241597c5a494e437c4349545920534b594c494e457c47554c4c7c53544f524d2046524f4e547c564f4c43414e494320474c4153537c544f524e41444f7c504c554d204b495454454e7c424f554c45564152447c50414c4f4d417c4d4f434b494e47424952447c5045575445527c5448554e44455253544f524d7c4d41474e45547c455843414c494255527c5348414c457c504156454d454e547c45424f4e597c5045524953434f50457c464f524745442049524f4e7c4f4253494449414e7c5048414e544f4d7c424c41434b20494e4b7c504541547c5455524b49534820434f464645457c4a4554205345547c534c41544520424c41434b7c5752454e7c44454d4954415353457c4d554c43487c455350524553534f7c43484f434f4c4154457c44454c4943494f534f7c434f46464545204245414e7c4652454e434820524f4153547c5345414c2042524f574e7c424c41434b20434f464645457c47414e414348457c43484553544e55547c524f434b5920524f41447c43415050554343494e4f7c46554447455349434b4c457c52554d2052414953494e7c5341424c457c48454e4e417c464952454420425249434b7c4d41444445522042524f574e7c484f542043484f434f4c4154457c434f505045522042524f574e7c425255534348455454417c4255524e5420425249434b7c4d415253414c417c524544204f434852457c4255524e542048454e4e417c455452555343414e205245447c42414b454420434c41597c4152414249414e2053504943457c534551554f49417c46524941522042524f574e7c5349455252417c415247414e204f494c7c434f434f4e5554205348454c4c7c544f52544f495345205348454c4c7c52415720554d4245527c434c4f56457c4341524f422042524f574e7c5255535345547c434f474e41437c41434f524e7c5041525452494447457c444143485348554e447c544f464645457c4341524146457c454d50455241444f527c434f464645452051554152545a7c434f434f417c53494e4f5049412046524553434f7c43484f434f4c415445204d414c547c504543414e205049457c534f46542053494c547c5052414c494e457c4d414341524f4f4e7c5441574e592042495243487c494e4449414e2054414e7c4d414343484941544f7c4c494f4e7c4e4f554741547c524f454255434b7c43414d454c7c4d4f434841204d4f555353457c435245414d2054414e7c5350414e4953482056494c4c417c5349524f43434f7c54555343414e597c434f524b7c53494c5645522050454f4e597c43414d454f20524f53457c524f534520445553547c4d41484f47414e5920524f53457c534c494748544c592050494e4b7c434f434f4e555420435245414d7c504554414c2050494e4b7c53414c534120524f53417c414e47454c2057494e477c5345412053414c547c53484545522050494e4b7c42524944414c20424c5553487c4445577c4d4f5247414e4954457c504541434820424c5553487c504f5744455220505546467c504541434820445553547c534f46542050494e4b7c5343414c4c4f50205348454c4c7c50414c4520444f47574f4f447c504541524c20424c5553487c435245524f4c452050494e4b7c504541434859204b45454e7c50414c4520424c5553487c524f534520434c4f55447c44555354592050494e4b7c42454c4c494e497c5045414348204e4f554741547c50494e4b2053414e447c445553545920434f52414c7c4d5554454420434c41597c415554554d4e20424c4f4e44457c474f4c44454e2053545241577c444f457c434c41597c41444f42457c474c415a45442047494e4745527c4c4541544845522042524f574e7c504541434820424c4f4f4d7c5048454153414e547c53554e4255524e7c414d4245522042524f574e7c48415a454c7c53414e4453544f4e457c434152414d454c7c524157205349454e4e417c415554554d4e204c4541467c415554554d4e414c7c554d4245527c4d45434341204f52414e47457c415554554d4e20474c415a457c504f54544552275320434c41597c524f4f49424f53205445417c504943414e54457c41505249434f54204252414e44597c415241474f4e7c54414e444f4f52492053504943457c424f535341204e4f56417c4b4554434855507c434f52414c2048415a457c43414e594f4e20434c41597c4c414e54414e417c464144454420524f53457c44555354592043454441527c42414b4544204150504c457c534852494d507c5441574e59204f52414e47457c4255524e54205349454e4e417c484f542053415543457c4341524e454c49414e7c4152414245535155457c4c414e474f555354494e4f7c4255524e5420434f52414c7c544552524120434f5454417c464c414d494e474f7c4255524e54204f434852457c5041504159412050554e43487c5045414348204e45435441527c434f52414c20524545467c50454143482050494e4b7c4341444d49554d204f52414e47457c43414e54414c4f5550457c4d454c4f4e7c50414c452050454143487c504541434820504152464149547c53414c4d4f4e7c5348454c4c20434f52414c7c50454143482046555a5a7c42454143482053414e447c41505249434f5420574153487c504541434820434f42424c45527c53414c4d4f4e20425546467c50554d504b494e7c435245414d505546467c50454143482051554152545a7c434f505045522054414e7c434f52414c20474f4c447c435245414d20424c5553487c41505249434f54204e45435441527c474f4c442045415254487c41505249434f542054414e7c474f4c44454e204f434852457c525553547c544f4d41544f20435245414d7c4255524e54204f52414e47457c474f4c4420464c414d457c484152564553542050554d504b494e7c4d55534b4d454c4f4e7c414d424552474c4f577c4a41464641204f52414e47457c415554554d4e204d41504c455041504159417c54414e474552494e457c4441524b20434845444441527c4f52414e4745205045505045527c525553534554204f52414e4745527c424c415a494e47204f52414e47457c4943454c414e442050555050597c464c414d45204f52414e47457c425249474854204d415249474f4c447c415554554d4e20474c4f52597c54414e47454c4f7c4f52494f4c457c56494252414e54204f52414e47457c4f52414e47452054494745527c455855424552414e43457c4455535459204f52414e47457c4f52414e4745205045454c7c43454c4f534941204f52414e47457c45584f544943204f52414e47457c4e4543544152494e457c434f52414c20524f53457c434152524f547c534341524c455420494249537c50554646494e27532042494c4c7c445241474f4e20464952457c4b4f497c464c414d457c4f52414e47454144457c524544204f52414e47457c54414e474552494e452054414e474f7c54494745524c494c597c53554d4d4552204649477c50415052494b417c52454420434c41597c5350494359204f52414e47457c4752454e4144494e457c43484552525920544f4d41544f7c504f494e4349414e417c4155524f5241205245447c50455253494d4d4f4e7c43414d454c4c49417c454d424552474c4f577c4d414e444152494e205245447c4649455259205245447c56414c49414e5420504f5050597c465553494f4e20434f52414c7c434f52414c7c434f52414c2051554152545a7c4c4956494e4720434f52414c7c484f5420434f52414c7c44455345525420464c4f5745527c47454f524749412050454143487c445542415252597c504f5243454c41494e20524f53457c4352414e42455252597c524f5345204f4620534841524f4e7c434159454e4e457c504f494e5345545449417c4348525953414e5448454d554d7c43415244494e414c7c544f4d41544f2050555245457c42495454455253574545547c524f434f43434f205245447c544f4d41544f7c48494249534355537c534341524c45547c53414c53417c41555241204f52414e47457c474f4a492042455252597c4841555445205245447c52454420414c4552547c4649524520574849524c7c464c414d4520534341524c45547c4551554553545249414e205245447c504f505059205245447c4348494e455345205245447c524942424f4e205245447c53414d42417c534b4920504154524f4c7c544f524541444f527c4c59434845457c4352494d534f4e7c4a4553544552205245447c4d415253205245447c54414e474f205245447c53434f4f5445527c4348494c49205045505045527c5341565659205245447c4b4152414e4441205245447c454d424f4c44454e45447c57494e4552597c52485954484d4943205245447c4e4557204d41524f4f4e7c42494b494e47205245447c4d45524c4f547c524544204441484c49417c53595241487c414e444f5252417c525542592057494e457c5449424554414e205245447c434f52444f56414e7c43414245524e45547c524544204d41484f47414e597c434f57484944457c4255524e54205255535345547c504f4d454752414e4154457c5a494e46414e44454c7c5441574e5920504f52547c52494f205245447c4445455020434c415245547c52554d4241205245447c4d41555645474c4f577c44455345525420524f53457c5241505455524520524f53457c4241524f51554520524f53457c484f4c4c592042455252597c4741524e455420524f53457c43414e44592050494e4b7c50454f4e597c51554152545a2050494e4b7c50494e4b204943494e477c434f4e4348205348454c4c7c53414c4d4f4e20524f53457c42524944414c20524f53457c424c5553487c535452415742455252597c54454120524f53457c4d494e4552414c205245447c524f53452054414e7c445553545920524f53457c41534820524f53457c43414e594f4e20524f53457c524f534520534d4f4b457c4d4953545920524f53457c50454143482042454947457c574954484552454420524f53457c4150504c45204255545445527c4d454c4c4f5720524f53457c524f53455454457c434544415220574f4f447c4255524c574f4f447c5045414348204d454c42417c54524f504943414c2050454143487c504541434820504541524c7c504541434820414d4245527c474f5353414d45522050494e4b7c454e474c49534820524f53457c494d50415449454e532050494e4b7c504f574445522050494e4b7c424c4f53534f4d7c5045414348455320435245414d7c434f52414c20414c4d4f4e447c424552525920435245414d7c4352595354414c20524f53457c5449434b4c45442050494e4b7c464c414d494e474f20504c554d457c4449414e544855537c5345415348454c4c2050494e4b7c4348494e545a20524f53457c50494e4b2053414c547c524f53452051554152545a7c4d55524558205348454c4c7c434152494e415249417c504541524c7c504f54504f555252497c50494e4b20444f4c5048494e7c44454c49434143597c48454156454e4c592050494e4b7c524f534557415445527c4d41555645204d4f524e7c4c4f5455537c4d415259275320524f53457c4d41555645204348414c4b7c5052494d524f53452050494e4b7c50414c45204c494c41437c524f4d414e434520524f53457c50494e4b204120424f4f7c43414c434954457c435241444c452050494e4b7c4f5243484944204943457c4c49474854204c494c41437c4c494c414320534e4f577c434f52534147457c50494e4b204c4144597c535745455420445245414d537c4c494c4143205341434845547c5049524f55455454457c50494e4b2054554c4c457c4e4f53454741597c50494e4b2046524f5354494e477c50494e4b20504f5745527c47494e2046495a5a7c425542424c4547554d7c43414d454c4c494120524f53457c465255495420444f56457c52455448494e4b2050494e4b7c434f4e46455454497c50415254592050554e43487c43414c5950534f20434f52414c7c57494e54455242455252597c57415445524d454c4f4e7c56495641204d4147454e54417c504c554d455249417c50415241444953452050494e4b7c474552414e49554d7c54454142455252597c484f4e45595355434b4c457c5241535042455252592057494e457c524f5345205245447c42415242455252597c415a414c45417c42524947485420524f53457c4c4f564520504f54494f4e7c4345524953457c5045525349414e205245447c524544204255447c484f542050494e4b7c4752414e4954417c53414e475249417c414e454d4f4e457c4d4f524e494e4720474c4f52597c415a414c45412050494e4b7c46414e44414e474f2050494e4b7c50494e4b20464c414d457c4341524d494e457c5341434845542050494e4b7c50494e4b204341524e4154494f4e7c57494c44204f52434849447c4942495320524f53457c46554348495349412050494e4b7c46494a4920464c4f5745527c4c494c414320524f53457c4348415445415520524f53457c4655434853494120524f53457c53414e475249412053554e5345547c50494e4b20594152524f577c494e4e55454e444f7c434f4e4520464c4f5745527c434142415245547c50494e4b20504541434f434b7c524f53452056494f4c45547c43414354555320464c4f5745527c4d4147454e54412048415a457c4241544f4e20524f5547457c424f5953454e42455252597c50484c4f582050494e4b7c505552504c4520504f54494f4e7c504c554d204341535049417c505552504c45204f52434849447c56495649442056494f4c417c57494c442041535445527c434c4f5645527c4441484c49417c484f4c4c59484f434b7c42595a414e5449554d7c474c4f58494e49417c4d554c42455252597c49524953204f52434849447c535041524b4c494e472047524150457c4752415045204a554943457c43524f4355537c424f444143494f55537c414d4554485953547c5048414c41454e4f505349537c56494f4c45547c4c4941545249537c42454155545942455252597c4f524348494420424f55515545547c56494f4c45542054554c4c457c4c494c41432043484946464f4e7c4359434c414d454e7c4f50455241204d415556457c4d4f4f4e4c495445204d415556457c434153484d45524520524f53457c5345412050494e4b7c5a45504859527c504f4c49474e41437c4455534b59204f52434849447c4d45534120524f53457c4d41555645574f4f447c44525920524f53457c524f53452057494e457c4845415448455220524f53457c4d414c4147417c424541554a4f4c4149537c42454554205245447c52484f444f44454e44524f4e7c4e4f5354414c47494120524f53457c5749535446554c204d415556457c4b45455053414b45204c494c41437c4d4155564520534841444f57537c454c44455242455252597c4752415045205348414b457c47524159204c494c41437c56494f4c4554204943457c534841444f5720475241597c4641574e7c414e544c4552a2646970667358221220ddfad9dff4bb24bd6004f86d83cb7b339d662794f1d4dce684fe2156c91fed7a64736f6c63430008090033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.