LCOV - code coverage report
Current view: top level - flamenco/types - fd_fuzz_types.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 3865 0.0 %
Date: 2025-07-01 05:00:49 Functions: 0 281 0.0 %

          Line data    Source code
       1             : // This is an auto-generated file. To add entries, edit fd_types.json
       2             : #ifndef HEADER_FUZZ_FD_RUNTIME_TYPES
       3             : #define HEADER_FUZZ_FD_RUNTIME_TYPES
       4             : 
       5             : #pragma GCC diagnostic ignored "-Wunused-parameter"
       6             : #pragma GCC diagnostic ignored "-Wunused-variable"
       7             : #define SOURCE_fd_src_flamenco_types_fd_types_c
       8             : #include "fd_types.h"
       9             : #include "fd_types_custom.h"
      10             : 
      11             : size_t LLVMFuzzerMutate(uchar *data, size_t size, size_t max_size);
      12             : 
      13           0 : void *fd_flamenco_txn_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      14           0 :   fd_flamenco_txn_t *self = (fd_flamenco_txn_t *) mem;
      15           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_flamenco_txn_t);
      16           0 :   fd_flamenco_txn_new(mem);
      17           0 :   LLVMFuzzerMutate( &self->txn_buf[0], FD_TXN_MAX_SZ, FD_TXN_MAX_SZ );
      18           0 :   self->raw_sz = fd_rng_ulong( rng ) % FD_TXN_MTU;
      19           0 :   LLVMFuzzerMutate( &self->raw[0], self->raw_sz, self->raw_sz );
      20           0 :   return mem;
      21           0 : }
      22             : 
      23           0 : void *fd_hash_generate(void *mem, void **alloc_mem, fd_rng_t * rng) {
      24           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_t);
      25           0 :   fd_hash_new(mem);
      26           0 :   LLVMFuzzerMutate( (uchar *) mem, sizeof(fd_hash_t), sizeof(fd_hash_t));
      27           0 :   return mem;
      28           0 : }
      29             : 
      30           0 : void *fd_pubkey_generate(void *mem, void **alloc_mem, fd_rng_t * rng) {
      31           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t);
      32           0 :   fd_pubkey_new(mem);
      33           0 :   LLVMFuzzerMutate( (uchar *) mem, sizeof(fd_pubkey_t), sizeof(fd_pubkey_t));
      34           0 :   return mem;
      35           0 : }
      36             : 
      37           0 : void *fd_signature_generate(void *mem, void **alloc_mem, fd_rng_t * rng) {
      38           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_signature_t);
      39           0 :   fd_signature_new(mem);
      40           0 :   LLVMFuzzerMutate( (uchar *) mem, sizeof(fd_signature_t), sizeof(fd_signature_t));
      41           0 :   return mem;
      42           0 : }
      43             : 
      44           0 : void *fd_gossip_ip4_addr_generate(void *mem, void **alloc_mem, fd_rng_t * rng) {
      45           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_ip4_addr_t);
      46           0 :   fd_gossip_ip4_addr_new(mem);
      47           0 :   LLVMFuzzerMutate( (uchar *) mem, sizeof(fd_gossip_ip4_addr_t), sizeof(fd_gossip_ip4_addr_t));
      48           0 :   return mem;
      49           0 : }
      50             : 
      51           0 : void *fd_gossip_ip6_addr_generate(void *mem, void **alloc_mem, fd_rng_t * rng) {
      52           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_ip6_addr_t);
      53           0 :   fd_gossip_ip6_addr_new(mem);
      54           0 :   LLVMFuzzerMutate( (uchar *) mem, sizeof(fd_gossip_ip6_addr_t), sizeof(fd_gossip_ip6_addr_t));
      55           0 :   return mem;
      56           0 : }
      57             : 
      58           0 : void *fd_feature_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      59           0 :   fd_feature_t *self = (fd_feature_t *) mem;
      60           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_feature_t);
      61           0 :   fd_feature_new(mem);
      62           0 :   {
      63           0 :     self->has_activated_at = fd_rng_uchar( rng ) % 2;
      64           0 :     if( self->has_activated_at ) {
      65           0 :       LLVMFuzzerMutate( (uchar *)&(self->activated_at), sizeof(ulong), sizeof(ulong) );
      66           0 :     }
      67           0 :   }
      68           0 :   return mem;
      69           0 : }
      70             : 
      71           0 : void *fd_fee_calculator_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      72           0 :   fd_fee_calculator_t *self = (fd_fee_calculator_t *) mem;
      73           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_fee_calculator_t);
      74           0 :   fd_fee_calculator_new(mem);
      75           0 :   self->lamports_per_signature = fd_rng_ulong( rng );
      76           0 :   return mem;
      77           0 : }
      78             : 
      79           0 : void *fd_hash_age_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      80           0 :   fd_hash_age_t *self = (fd_hash_age_t *) mem;
      81           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_age_t);
      82           0 :   fd_hash_age_new(mem);
      83           0 :   fd_fee_calculator_generate( &self->fee_calculator, alloc_mem, rng );
      84           0 :   self->hash_index = fd_rng_ulong( rng );
      85           0 :   self->timestamp = fd_rng_ulong( rng );
      86           0 :   return mem;
      87           0 : }
      88             : 
      89           0 : void *fd_hash_hash_age_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      90           0 :   fd_hash_hash_age_pair_t *self = (fd_hash_hash_age_pair_t *) mem;
      91           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_hash_age_pair_t);
      92           0 :   fd_hash_hash_age_pair_new(mem);
      93           0 :   fd_hash_generate( &self->key, alloc_mem, rng );
      94           0 :   fd_hash_age_generate( &self->val, alloc_mem, rng );
      95           0 :   return mem;
      96           0 : }
      97             : 
      98           0 : void *fd_block_hash_vec_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
      99           0 :   fd_block_hash_vec_t *self = (fd_block_hash_vec_t *) mem;
     100           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_block_hash_vec_t);
     101           0 :   fd_block_hash_vec_new(mem);
     102           0 :   self->last_hash_index = fd_rng_ulong( rng );
     103           0 :   {
     104           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     105           0 :     if( !is_null ) {
     106           0 :       self->last_hash = (fd_hash_t *) *alloc_mem;
     107           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_t);
     108           0 :       fd_hash_new( self->last_hash );
     109           0 :       fd_hash_generate( self->last_hash, alloc_mem, rng );
     110           0 :     }
     111           0 :     else {
     112           0 :     self->last_hash = NULL;
     113           0 :     }
     114           0 :   }
     115           0 :   self->ages_len = fd_rng_ulong( rng ) % 8;
     116           0 :   if( self->ages_len ) {
     117           0 :     self->ages = (fd_hash_hash_age_pair_t *) *alloc_mem;
     118           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_hash_age_pair_t)*self->ages_len;
     119           0 :     for( ulong i=0; i < self->ages_len; i++ ) {
     120           0 :       fd_hash_hash_age_pair_new( self->ages + i );
     121           0 :       fd_hash_hash_age_pair_generate( self->ages + i, alloc_mem, rng );
     122           0 :     }
     123           0 :   } else {
     124           0 :     self->ages = NULL;
     125           0 :   }
     126           0 :   self->max_age = fd_rng_ulong( rng );
     127           0 :   return mem;
     128           0 : }
     129             : 
     130           0 : void *fd_block_hash_queue_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     131           0 :   fd_block_hash_queue_t *self = (fd_block_hash_queue_t *) mem;
     132           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_block_hash_queue_t);
     133           0 :   fd_block_hash_queue_new(mem);
     134           0 :   self->last_hash_index = fd_rng_ulong( rng );
     135           0 :   {
     136           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     137           0 :     if( !is_null ) {
     138           0 :       self->last_hash = (fd_hash_t *) *alloc_mem;
     139           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_t);
     140           0 :       fd_hash_new( self->last_hash );
     141           0 :       fd_hash_generate( self->last_hash, alloc_mem, rng );
     142           0 :     }
     143           0 :     else {
     144           0 :     self->last_hash = NULL;
     145           0 :     }
     146           0 :   }
     147           0 :   ulong ages_len = fd_rng_ulong( rng ) % 8;
     148           0 :   self->ages_pool = fd_hash_hash_age_pair_t_map_join_new( alloc_mem, fd_ulong_max( ages_len, 400 ) );
     149           0 :   self->ages_root = NULL;
     150           0 :   for( ulong i=0; i < ages_len; i++ ) {
     151           0 :     fd_hash_hash_age_pair_t_mapnode_t * node = fd_hash_hash_age_pair_t_map_acquire( self->ages_pool );
     152           0 :     fd_hash_hash_age_pair_generate( &node->elem, alloc_mem, rng );
     153           0 :     fd_hash_hash_age_pair_t_map_insert( self->ages_pool, &self->ages_root, node );
     154           0 :   }
     155           0 :   self->max_age = fd_rng_ulong( rng );
     156           0 :   return mem;
     157           0 : }
     158             : 
     159           0 : void *fd_fee_rate_governor_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     160           0 :   fd_fee_rate_governor_t *self = (fd_fee_rate_governor_t *) mem;
     161           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_fee_rate_governor_t);
     162           0 :   fd_fee_rate_governor_new(mem);
     163           0 :   self->target_lamports_per_signature = fd_rng_ulong( rng );
     164           0 :   self->target_signatures_per_slot = fd_rng_ulong( rng );
     165           0 :   self->min_lamports_per_signature = fd_rng_ulong( rng );
     166           0 :   self->max_lamports_per_signature = fd_rng_ulong( rng );
     167           0 :   self->burn_percent = fd_rng_uchar( rng );
     168           0 :   return mem;
     169           0 : }
     170             : 
     171           0 : void *fd_slot_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     172           0 :   fd_slot_pair_t *self = (fd_slot_pair_t *) mem;
     173           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_pair_t);
     174           0 :   fd_slot_pair_new(mem);
     175           0 :   self->slot = fd_rng_ulong( rng );
     176           0 :   self->val = fd_rng_ulong( rng );
     177           0 :   return mem;
     178           0 : }
     179             : 
     180           0 : void *fd_hard_forks_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     181           0 :   fd_hard_forks_t *self = (fd_hard_forks_t *) mem;
     182           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hard_forks_t);
     183           0 :   fd_hard_forks_new(mem);
     184           0 :   self->hard_forks_len = fd_rng_ulong( rng ) % 8;
     185           0 :   if( self->hard_forks_len ) {
     186           0 :     self->hard_forks = (fd_slot_pair_t *) *alloc_mem;
     187           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_pair_t)*self->hard_forks_len;
     188           0 :     for( ulong i=0; i < self->hard_forks_len; i++ ) {
     189           0 :       fd_slot_pair_new( self->hard_forks + i );
     190           0 :       fd_slot_pair_generate( self->hard_forks + i, alloc_mem, rng );
     191           0 :     }
     192           0 :   } else {
     193           0 :     self->hard_forks = NULL;
     194           0 :   }
     195           0 :   return mem;
     196           0 : }
     197             : 
     198           0 : void *fd_inflation_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     199           0 :   fd_inflation_t *self = (fd_inflation_t *) mem;
     200           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_inflation_t);
     201           0 :   fd_inflation_new(mem);
     202           0 :   self->initial = fd_rng_double_o( rng );
     203           0 :   self->terminal = fd_rng_double_o( rng );
     204           0 :   self->taper = fd_rng_double_o( rng );
     205           0 :   self->foundation = fd_rng_double_o( rng );
     206           0 :   self->foundation_term = fd_rng_double_o( rng );
     207           0 :   self->unused = fd_rng_double_o( rng );
     208           0 :   return mem;
     209           0 : }
     210             : 
     211           0 : void *fd_rent_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     212           0 :   fd_rent_t *self = (fd_rent_t *) mem;
     213           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_rent_t);
     214           0 :   fd_rent_new(mem);
     215           0 :   self->lamports_per_uint8_year = fd_rng_ulong( rng );
     216           0 :   self->exemption_threshold = fd_rng_double_o( rng );
     217           0 :   self->burn_percent = fd_rng_uchar( rng );
     218           0 :   return mem;
     219           0 : }
     220             : 
     221           0 : void *fd_epoch_schedule_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     222           0 :   fd_epoch_schedule_t *self = (fd_epoch_schedule_t *) mem;
     223           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_schedule_t);
     224           0 :   fd_epoch_schedule_new(mem);
     225           0 :   self->slots_per_epoch = fd_rng_ulong( rng );
     226           0 :   self->leader_schedule_slot_offset = fd_rng_ulong( rng );
     227           0 :   self->warmup = fd_rng_uchar( rng );
     228           0 :   self->first_normal_epoch = fd_rng_ulong( rng );
     229           0 :   self->first_normal_slot = fd_rng_ulong( rng );
     230           0 :   return mem;
     231           0 : }
     232             : 
     233           0 : void *fd_rent_collector_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     234           0 :   fd_rent_collector_t *self = (fd_rent_collector_t *) mem;
     235           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_rent_collector_t);
     236           0 :   fd_rent_collector_new(mem);
     237           0 :   self->epoch = fd_rng_ulong( rng );
     238           0 :   fd_epoch_schedule_generate( &self->epoch_schedule, alloc_mem, rng );
     239           0 :   self->slots_per_year = fd_rng_double_o( rng );
     240           0 :   fd_rent_generate( &self->rent, alloc_mem, rng );
     241           0 :   return mem;
     242           0 : }
     243             : 
     244           0 : void *fd_stake_history_entry_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     245           0 :   fd_stake_history_entry_t *self = (fd_stake_history_entry_t *) mem;
     246           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_history_entry_t);
     247           0 :   fd_stake_history_entry_new(mem);
     248           0 :   self->effective = fd_rng_ulong( rng );
     249           0 :   self->activating = fd_rng_ulong( rng );
     250           0 :   self->deactivating = fd_rng_ulong( rng );
     251           0 :   return mem;
     252           0 : }
     253             : 
     254           0 : void *fd_epoch_stake_history_entry_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     255           0 :   fd_epoch_stake_history_entry_pair_t *self = (fd_epoch_stake_history_entry_pair_t *) mem;
     256           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_stake_history_entry_pair_t);
     257           0 :   fd_epoch_stake_history_entry_pair_new(mem);
     258           0 :   self->epoch = fd_rng_ulong( rng );
     259           0 :   fd_stake_history_entry_generate( &self->entry, alloc_mem, rng );
     260           0 :   return mem;
     261           0 : }
     262             : 
     263           0 : void *fd_stake_history_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     264           0 :   fd_stake_history_t *self = (fd_stake_history_t *) mem;
     265           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_history_t);
     266           0 :   fd_stake_history_new(mem);
     267           0 :   self->fd_stake_history_len = fd_rng_ulong( rng ) % 8;
     268           0 :   self->fd_stake_history_size = 512;
     269           0 :   self->fd_stake_history_offset = 0;
     270           0 :   for( ulong i=0; i<self->fd_stake_history_len; i++ ) {
     271           0 :     fd_epoch_stake_history_entry_pair_generate( self->fd_stake_history + i, alloc_mem, rng );
     272           0 :   }
     273           0 :   return mem;
     274           0 : }
     275             : 
     276           0 : void *fd_solana_account_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     277           0 :   fd_solana_account_t *self = (fd_solana_account_t *) mem;
     278           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_account_t);
     279           0 :   fd_solana_account_new(mem);
     280           0 :   self->lamports = fd_rng_ulong( rng );
     281           0 :   self->data_len = fd_rng_ulong( rng ) % 8;
     282           0 :   if( self->data_len ) {
     283           0 :     self->data = (uchar *) *alloc_mem;
     284           0 :     *alloc_mem = (uchar *) *alloc_mem + self->data_len;
     285           0 :     for( ulong i=0; i < self->data_len; ++i) { self->data[i] = fd_rng_uchar( rng ) % 0x80; }
     286           0 :   } else {
     287           0 :     self->data = NULL;
     288           0 :   }
     289           0 :   fd_pubkey_generate( &self->owner, alloc_mem, rng );
     290           0 :   self->executable = fd_rng_uchar( rng );
     291           0 :   self->rent_epoch = fd_rng_ulong( rng );
     292           0 :   return mem;
     293           0 : }
     294             : 
     295           0 : void *fd_solana_account_stored_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     296           0 :   fd_solana_account_stored_meta_t *self = (fd_solana_account_stored_meta_t *) mem;
     297           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_account_stored_meta_t);
     298           0 :   fd_solana_account_stored_meta_new(mem);
     299           0 :   self->write_version_obsolete = fd_rng_ulong( rng );
     300           0 :   self->data_len = fd_rng_ulong( rng );
     301           0 :   LLVMFuzzerMutate( &self->pubkey[0], sizeof(self->pubkey), sizeof(self->pubkey) );
     302           0 :   return mem;
     303           0 : }
     304             : 
     305           0 : void *fd_solana_account_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     306           0 :   fd_solana_account_meta_t *self = (fd_solana_account_meta_t *) mem;
     307           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_account_meta_t);
     308           0 :   fd_solana_account_meta_new(mem);
     309           0 :   self->lamports = fd_rng_ulong( rng );
     310           0 :   self->rent_epoch = fd_rng_ulong( rng );
     311           0 :   LLVMFuzzerMutate( &self->owner[0], sizeof(self->owner), sizeof(self->owner) );
     312           0 :   self->executable = fd_rng_uchar( rng );
     313           0 :   LLVMFuzzerMutate( self->padding, 3, 3 );
     314           0 :   return mem;
     315           0 : }
     316             : 
     317           0 : void *fd_solana_account_hdr_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     318           0 :   fd_solana_account_hdr_t *self = (fd_solana_account_hdr_t *) mem;
     319           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_account_hdr_t);
     320           0 :   fd_solana_account_hdr_new(mem);
     321           0 :   fd_solana_account_stored_meta_generate( &self->meta, alloc_mem, rng );
     322           0 :   fd_solana_account_meta_generate( &self->info, alloc_mem, rng );
     323           0 :   LLVMFuzzerMutate( self->padding, 4, 4 );
     324           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
     325           0 :   return mem;
     326           0 : }
     327             : 
     328           0 : void *fd_account_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     329           0 :   fd_account_meta_t *self = (fd_account_meta_t *) mem;
     330           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_account_meta_t);
     331           0 :   fd_account_meta_new(mem);
     332           0 :   self->magic = fd_rng_ushort( rng );
     333           0 :   self->hlen = fd_rng_ushort( rng );
     334           0 :   self->dlen = fd_rng_ulong( rng );
     335           0 :   LLVMFuzzerMutate( &self->hash[0], sizeof(self->hash), sizeof(self->hash) );
     336           0 :   self->slot = fd_rng_ulong( rng );
     337           0 :   fd_solana_account_meta_generate( &self->info, alloc_mem, rng );
     338           0 :   return mem;
     339           0 : }
     340             : 
     341           0 : void *fd_vote_accounts_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     342           0 :   fd_vote_accounts_pair_t *self = (fd_vote_accounts_pair_t *) mem;
     343           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_accounts_pair_t);
     344           0 :   fd_vote_accounts_pair_new(mem);
     345           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     346           0 :   self->stake = fd_rng_ulong( rng );
     347           0 :   fd_solana_account_generate( &self->value, alloc_mem, rng );
     348           0 :   return mem;
     349           0 : }
     350             : 
     351           0 : void *fd_vote_accounts_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     352           0 :   fd_vote_accounts_t *self = (fd_vote_accounts_t *) mem;
     353           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_accounts_t);
     354           0 :   fd_vote_accounts_new(mem);
     355           0 :   ulong vote_accounts_len = fd_rng_ulong( rng ) % 8;
     356           0 :   self->vote_accounts_pool = fd_vote_accounts_pair_t_map_join_new( alloc_mem, fd_ulong_max( vote_accounts_len, 50000 ) );
     357           0 :   self->vote_accounts_root = NULL;
     358           0 :   for( ulong i=0; i < vote_accounts_len; i++ ) {
     359           0 :     fd_vote_accounts_pair_t_mapnode_t * node = fd_vote_accounts_pair_t_map_acquire( self->vote_accounts_pool );
     360           0 :     fd_vote_accounts_pair_generate( &node->elem, alloc_mem, rng );
     361           0 :     fd_vote_accounts_pair_t_map_insert( self->vote_accounts_pool, &self->vote_accounts_root, node );
     362           0 :   }
     363           0 :   return mem;
     364           0 : }
     365             : 
     366           0 : void *fd_account_keys_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     367           0 :   fd_account_keys_pair_t *self = (fd_account_keys_pair_t *) mem;
     368           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_account_keys_pair_t);
     369           0 :   fd_account_keys_pair_new(mem);
     370           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     371           0 :   self->exists = fd_rng_uchar( rng );
     372           0 :   return mem;
     373           0 : }
     374             : 
     375           0 : void *fd_account_keys_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     376           0 :   fd_account_keys_t *self = (fd_account_keys_t *) mem;
     377           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_account_keys_t);
     378           0 :   fd_account_keys_new(mem);
     379           0 :   ulong account_keys_len = fd_rng_ulong( rng ) % 8;
     380           0 :   self->account_keys_pool = fd_account_keys_pair_t_map_join_new( alloc_mem, fd_ulong_max( account_keys_len, 100000 ) );
     381           0 :   self->account_keys_root = NULL;
     382           0 :   for( ulong i=0; i < account_keys_len; i++ ) {
     383           0 :     fd_account_keys_pair_t_mapnode_t * node = fd_account_keys_pair_t_map_acquire( self->account_keys_pool );
     384           0 :     fd_account_keys_pair_generate( &node->elem, alloc_mem, rng );
     385           0 :     fd_account_keys_pair_t_map_insert( self->account_keys_pool, &self->account_keys_root, node );
     386           0 :   }
     387           0 :   return mem;
     388           0 : }
     389             : 
     390           0 : void *fd_stake_weight_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     391           0 :   fd_stake_weight_t *self = (fd_stake_weight_t *) mem;
     392           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_weight_t);
     393           0 :   fd_stake_weight_new(mem);
     394           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     395           0 :   self->stake = fd_rng_ulong( rng );
     396           0 :   return mem;
     397           0 : }
     398             : 
     399           0 : void *fd_stake_weights_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     400           0 :   fd_stake_weights_t *self = (fd_stake_weights_t *) mem;
     401           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_weights_t);
     402           0 :   fd_stake_weights_new(mem);
     403           0 :   ulong stake_weights_len = fd_rng_ulong( rng ) % 8;
     404           0 :   self->stake_weights_pool = fd_stake_weight_t_map_join_new( alloc_mem, stake_weights_len );
     405           0 :   self->stake_weights_root = NULL;
     406           0 :   for( ulong i=0; i < stake_weights_len; i++ ) {
     407           0 :     fd_stake_weight_t_mapnode_t * node = fd_stake_weight_t_map_acquire( self->stake_weights_pool );
     408           0 :     fd_stake_weight_generate( &node->elem, alloc_mem, rng );
     409           0 :     fd_stake_weight_t_map_insert( self->stake_weights_pool, &self->stake_weights_root, node );
     410           0 :   }
     411           0 :   return mem;
     412           0 : }
     413             : 
     414           0 : void *fd_delegation_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     415           0 :   fd_delegation_t *self = (fd_delegation_t *) mem;
     416           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_delegation_t);
     417           0 :   fd_delegation_new(mem);
     418           0 :   fd_pubkey_generate( &self->voter_pubkey, alloc_mem, rng );
     419           0 :   self->stake = fd_rng_ulong( rng );
     420           0 :   self->activation_epoch = fd_rng_ulong( rng );
     421           0 :   self->deactivation_epoch = fd_rng_ulong( rng );
     422           0 :   self->warmup_cooldown_rate = fd_rng_double_o( rng );
     423           0 :   return mem;
     424           0 : }
     425             : 
     426           0 : void *fd_delegation_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     427           0 :   fd_delegation_pair_t *self = (fd_delegation_pair_t *) mem;
     428           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_delegation_pair_t);
     429           0 :   fd_delegation_pair_new(mem);
     430           0 :   fd_pubkey_generate( &self->account, alloc_mem, rng );
     431           0 :   fd_delegation_generate( &self->delegation, alloc_mem, rng );
     432           0 :   return mem;
     433           0 : }
     434             : 
     435           0 : void *fd_stake_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     436           0 :   fd_stake_t *self = (fd_stake_t *) mem;
     437           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_t);
     438           0 :   fd_stake_new(mem);
     439           0 :   fd_delegation_generate( &self->delegation, alloc_mem, rng );
     440           0 :   self->credits_observed = fd_rng_ulong( rng );
     441           0 :   return mem;
     442           0 : }
     443             : 
     444           0 : void *fd_stake_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     445           0 :   fd_stake_pair_t *self = (fd_stake_pair_t *) mem;
     446           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_pair_t);
     447           0 :   fd_stake_pair_new(mem);
     448           0 :   fd_pubkey_generate( &self->account, alloc_mem, rng );
     449           0 :   fd_stake_generate( &self->stake, alloc_mem, rng );
     450           0 :   return mem;
     451           0 : }
     452             : 
     453           0 : void *fd_stakes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     454           0 :   fd_stakes_t *self = (fd_stakes_t *) mem;
     455           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stakes_t);
     456           0 :   fd_stakes_new(mem);
     457           0 :   fd_vote_accounts_generate( &self->vote_accounts, alloc_mem, rng );
     458           0 :   ulong stake_delegations_len = fd_rng_ulong( rng ) % 8;
     459           0 :   self->stake_delegations_pool = fd_delegation_pair_t_map_join_new( alloc_mem, fd_ulong_max( stake_delegations_len, 2000000 ) );
     460           0 :   self->stake_delegations_root = NULL;
     461           0 :   for( ulong i=0; i < stake_delegations_len; i++ ) {
     462           0 :     fd_delegation_pair_t_mapnode_t * node = fd_delegation_pair_t_map_acquire( self->stake_delegations_pool );
     463           0 :     fd_delegation_pair_generate( &node->elem, alloc_mem, rng );
     464           0 :     fd_delegation_pair_t_map_insert( self->stake_delegations_pool, &self->stake_delegations_root, node );
     465           0 :   }
     466           0 :   self->unused = fd_rng_ulong( rng );
     467           0 :   self->epoch = fd_rng_ulong( rng );
     468           0 :   fd_stake_history_generate( &self->stake_history, alloc_mem, rng );
     469           0 :   return mem;
     470           0 : }
     471             : 
     472           0 : void *fd_stakes_stake_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     473           0 :   fd_stakes_stake_t *self = (fd_stakes_stake_t *) mem;
     474           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stakes_stake_t);
     475           0 :   fd_stakes_stake_new(mem);
     476           0 :   fd_vote_accounts_generate( &self->vote_accounts, alloc_mem, rng );
     477           0 :   ulong stake_delegations_len = fd_rng_ulong( rng ) % 8;
     478           0 :   self->stake_delegations_pool = fd_stake_pair_t_map_join_new( alloc_mem, stake_delegations_len );
     479           0 :   self->stake_delegations_root = NULL;
     480           0 :   for( ulong i=0; i < stake_delegations_len; i++ ) {
     481           0 :     fd_stake_pair_t_mapnode_t * node = fd_stake_pair_t_map_acquire( self->stake_delegations_pool );
     482           0 :     fd_stake_pair_generate( &node->elem, alloc_mem, rng );
     483           0 :     fd_stake_pair_t_map_insert( self->stake_delegations_pool, &self->stake_delegations_root, node );
     484           0 :   }
     485           0 :   self->unused = fd_rng_ulong( rng );
     486           0 :   self->epoch = fd_rng_ulong( rng );
     487           0 :   fd_stake_history_generate( &self->stake_history, alloc_mem, rng );
     488           0 :   return mem;
     489           0 : }
     490             : 
     491           0 : void *fd_bank_incremental_snapshot_persistence_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     492           0 :   fd_bank_incremental_snapshot_persistence_t *self = (fd_bank_incremental_snapshot_persistence_t *) mem;
     493           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bank_incremental_snapshot_persistence_t);
     494           0 :   fd_bank_incremental_snapshot_persistence_new(mem);
     495           0 :   self->full_slot = fd_rng_ulong( rng );
     496           0 :   fd_hash_generate( &self->full_hash, alloc_mem, rng );
     497           0 :   self->full_capitalization = fd_rng_ulong( rng );
     498           0 :   fd_hash_generate( &self->incremental_hash, alloc_mem, rng );
     499           0 :   self->incremental_capitalization = fd_rng_ulong( rng );
     500           0 :   return mem;
     501           0 : }
     502             : 
     503           0 : void *fd_node_vote_accounts_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     504           0 :   fd_node_vote_accounts_t *self = (fd_node_vote_accounts_t *) mem;
     505           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_node_vote_accounts_t);
     506           0 :   fd_node_vote_accounts_new(mem);
     507           0 :   self->vote_accounts_len = fd_rng_ulong( rng ) % 8;
     508           0 :   if( self->vote_accounts_len ) {
     509           0 :     self->vote_accounts = (fd_pubkey_t *) *alloc_mem;
     510           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->vote_accounts_len;
     511           0 :     for( ulong i=0; i < self->vote_accounts_len; i++ ) {
     512           0 :       fd_pubkey_new( self->vote_accounts + i );
     513           0 :       fd_pubkey_generate( self->vote_accounts + i, alloc_mem, rng );
     514           0 :     }
     515           0 :   } else {
     516           0 :     self->vote_accounts = NULL;
     517           0 :   }
     518           0 :   self->total_stake = fd_rng_ulong( rng );
     519           0 :   return mem;
     520           0 : }
     521             : 
     522           0 : void *fd_pubkey_node_vote_accounts_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     523           0 :   fd_pubkey_node_vote_accounts_pair_t *self = (fd_pubkey_node_vote_accounts_pair_t *) mem;
     524           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_node_vote_accounts_pair_t);
     525           0 :   fd_pubkey_node_vote_accounts_pair_new(mem);
     526           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     527           0 :   fd_node_vote_accounts_generate( &self->value, alloc_mem, rng );
     528           0 :   return mem;
     529           0 : }
     530             : 
     531           0 : void *fd_pubkey_pubkey_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     532           0 :   fd_pubkey_pubkey_pair_t *self = (fd_pubkey_pubkey_pair_t *) mem;
     533           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_pubkey_pair_t);
     534           0 :   fd_pubkey_pubkey_pair_new(mem);
     535           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     536           0 :   fd_pubkey_generate( &self->value, alloc_mem, rng );
     537           0 :   return mem;
     538           0 : }
     539             : 
     540           0 : void *fd_epoch_stakes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     541           0 :   fd_epoch_stakes_t *self = (fd_epoch_stakes_t *) mem;
     542           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_stakes_t);
     543           0 :   fd_epoch_stakes_new(mem);
     544           0 :   fd_stakes_generate( &self->stakes, alloc_mem, rng );
     545           0 :   self->total_stake = fd_rng_ulong( rng );
     546           0 :   ulong node_id_to_vote_accounts_len = fd_rng_ulong( rng ) % 8;
     547           0 :   self->node_id_to_vote_accounts_pool = fd_pubkey_node_vote_accounts_pair_t_map_join_new( alloc_mem, node_id_to_vote_accounts_len );
     548           0 :   self->node_id_to_vote_accounts_root = NULL;
     549           0 :   for( ulong i=0; i < node_id_to_vote_accounts_len; i++ ) {
     550           0 :     fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node = fd_pubkey_node_vote_accounts_pair_t_map_acquire( self->node_id_to_vote_accounts_pool );
     551           0 :     fd_pubkey_node_vote_accounts_pair_generate( &node->elem, alloc_mem, rng );
     552           0 :     fd_pubkey_node_vote_accounts_pair_t_map_insert( self->node_id_to_vote_accounts_pool, &self->node_id_to_vote_accounts_root, node );
     553           0 :   }
     554           0 :   ulong epoch_authorized_voters_len = fd_rng_ulong( rng ) % 8;
     555           0 :   self->epoch_authorized_voters_pool = fd_pubkey_pubkey_pair_t_map_join_new( alloc_mem, epoch_authorized_voters_len );
     556           0 :   self->epoch_authorized_voters_root = NULL;
     557           0 :   for( ulong i=0; i < epoch_authorized_voters_len; i++ ) {
     558           0 :     fd_pubkey_pubkey_pair_t_mapnode_t * node = fd_pubkey_pubkey_pair_t_map_acquire( self->epoch_authorized_voters_pool );
     559           0 :     fd_pubkey_pubkey_pair_generate( &node->elem, alloc_mem, rng );
     560           0 :     fd_pubkey_pubkey_pair_t_map_insert( self->epoch_authorized_voters_pool, &self->epoch_authorized_voters_root, node );
     561           0 :   }
     562           0 :   return mem;
     563           0 : }
     564             : 
     565           0 : void *fd_epoch_epoch_stakes_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     566           0 :   fd_epoch_epoch_stakes_pair_t *self = (fd_epoch_epoch_stakes_pair_t *) mem;
     567           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_epoch_stakes_pair_t);
     568           0 :   fd_epoch_epoch_stakes_pair_new(mem);
     569           0 :   self->key = fd_rng_ulong( rng );
     570           0 :   fd_epoch_stakes_generate( &self->value, alloc_mem, rng );
     571           0 :   return mem;
     572           0 : }
     573             : 
     574           0 : void *fd_pubkey_u64_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     575           0 :   fd_pubkey_u64_pair_t *self = (fd_pubkey_u64_pair_t *) mem;
     576           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_u64_pair_t);
     577           0 :   fd_pubkey_u64_pair_new(mem);
     578           0 :   fd_pubkey_generate( &self->_0, alloc_mem, rng );
     579           0 :   self->_1 = fd_rng_ulong( rng );
     580           0 :   return mem;
     581           0 : }
     582             : 
     583           0 : void *fd_unused_accounts_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     584           0 :   fd_unused_accounts_t *self = (fd_unused_accounts_t *) mem;
     585           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_unused_accounts_t);
     586           0 :   fd_unused_accounts_new(mem);
     587           0 :   self->unused1_len = fd_rng_ulong( rng ) % 8;
     588           0 :   if( self->unused1_len ) {
     589           0 :     self->unused1 = (fd_pubkey_t *) *alloc_mem;
     590           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->unused1_len;
     591           0 :     for( ulong i=0; i < self->unused1_len; i++ ) {
     592           0 :       fd_pubkey_new( self->unused1 + i );
     593           0 :       fd_pubkey_generate( self->unused1 + i, alloc_mem, rng );
     594           0 :     }
     595           0 :   } else {
     596           0 :     self->unused1 = NULL;
     597           0 :   }
     598           0 :   self->unused2_len = fd_rng_ulong( rng ) % 8;
     599           0 :   if( self->unused2_len ) {
     600           0 :     self->unused2 = (fd_pubkey_t *) *alloc_mem;
     601           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->unused2_len;
     602           0 :     for( ulong i=0; i < self->unused2_len; i++ ) {
     603           0 :       fd_pubkey_new( self->unused2 + i );
     604           0 :       fd_pubkey_generate( self->unused2 + i, alloc_mem, rng );
     605           0 :     }
     606           0 :   } else {
     607           0 :     self->unused2 = NULL;
     608           0 :   }
     609           0 :   self->unused3_len = fd_rng_ulong( rng ) % 8;
     610           0 :   if( self->unused3_len ) {
     611           0 :     self->unused3 = (fd_pubkey_u64_pair_t *) *alloc_mem;
     612           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_u64_pair_t)*self->unused3_len;
     613           0 :     for( ulong i=0; i < self->unused3_len; i++ ) {
     614           0 :       fd_pubkey_u64_pair_new( self->unused3 + i );
     615           0 :       fd_pubkey_u64_pair_generate( self->unused3 + i, alloc_mem, rng );
     616           0 :     }
     617           0 :   } else {
     618           0 :     self->unused3 = NULL;
     619           0 :   }
     620           0 :   return mem;
     621           0 : }
     622             : 
     623           0 : void *fd_versioned_bank_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     624           0 :   fd_versioned_bank_t *self = (fd_versioned_bank_t *) mem;
     625           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_versioned_bank_t);
     626           0 :   fd_versioned_bank_new(mem);
     627           0 :   fd_block_hash_vec_generate( &self->blockhash_queue, alloc_mem, rng );
     628           0 :   self->ancestors_len = fd_rng_ulong( rng ) % 8;
     629           0 :   if( self->ancestors_len ) {
     630           0 :     self->ancestors = (fd_slot_pair_t *) *alloc_mem;
     631           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_pair_t)*self->ancestors_len;
     632           0 :     for( ulong i=0; i < self->ancestors_len; i++ ) {
     633           0 :       fd_slot_pair_new( self->ancestors + i );
     634           0 :       fd_slot_pair_generate( self->ancestors + i, alloc_mem, rng );
     635           0 :     }
     636           0 :   } else {
     637           0 :     self->ancestors = NULL;
     638           0 :   }
     639           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
     640           0 :   fd_hash_generate( &self->parent_hash, alloc_mem, rng );
     641           0 :   self->parent_slot = fd_rng_ulong( rng );
     642           0 :   fd_hard_forks_generate( &self->hard_forks, alloc_mem, rng );
     643           0 :   self->transaction_count = fd_rng_ulong( rng );
     644           0 :   self->tick_height = fd_rng_ulong( rng );
     645           0 :   self->signature_count = fd_rng_ulong( rng );
     646           0 :   self->capitalization = fd_rng_ulong( rng );
     647           0 :   self->max_tick_height = fd_rng_ulong( rng );
     648           0 :   {
     649           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     650           0 :     if( !is_null ) {
     651           0 :       self->hashes_per_tick = (ulong *) *alloc_mem;
     652           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong);
     653           0 :       LLVMFuzzerMutate( (uchar *)self->hashes_per_tick, sizeof(ulong), sizeof(ulong) );
     654           0 :     }
     655           0 :     else {
     656           0 :     self->hashes_per_tick = NULL;
     657           0 :     }
     658           0 :   }
     659           0 :   self->ticks_per_slot = fd_rng_ulong( rng );
     660           0 :   self->ns_per_slot = fd_rng_uint128( rng );
     661           0 :   self->genesis_creation_time = fd_rng_ulong( rng );
     662           0 :   self->slots_per_year = fd_rng_double_o( rng );
     663           0 :   self->accounts_data_len = fd_rng_ulong( rng );
     664           0 :   self->slot = fd_rng_ulong( rng );
     665           0 :   self->epoch = fd_rng_ulong( rng );
     666           0 :   self->block_height = fd_rng_ulong( rng );
     667           0 :   fd_pubkey_generate( &self->collector_id, alloc_mem, rng );
     668           0 :   self->collector_fees = fd_rng_ulong( rng );
     669           0 :   fd_fee_calculator_generate( &self->fee_calculator, alloc_mem, rng );
     670           0 :   fd_fee_rate_governor_generate( &self->fee_rate_governor, alloc_mem, rng );
     671           0 :   self->collected_rent = fd_rng_ulong( rng );
     672           0 :   fd_rent_collector_generate( &self->rent_collector, alloc_mem, rng );
     673           0 :   fd_epoch_schedule_generate( &self->epoch_schedule, alloc_mem, rng );
     674           0 :   fd_inflation_generate( &self->inflation, alloc_mem, rng );
     675           0 :   fd_stakes_generate( &self->stakes, alloc_mem, rng );
     676           0 :   fd_unused_accounts_generate( &self->unused_accounts, alloc_mem, rng );
     677           0 :   self->epoch_stakes_len = fd_rng_ulong( rng ) % 8;
     678           0 :   if( self->epoch_stakes_len ) {
     679           0 :     self->epoch_stakes = (fd_epoch_epoch_stakes_pair_t *) *alloc_mem;
     680           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_epoch_stakes_pair_t)*self->epoch_stakes_len;
     681           0 :     for( ulong i=0; i < self->epoch_stakes_len; i++ ) {
     682           0 :       fd_epoch_epoch_stakes_pair_new( self->epoch_stakes + i );
     683           0 :       fd_epoch_epoch_stakes_pair_generate( self->epoch_stakes + i, alloc_mem, rng );
     684           0 :     }
     685           0 :   } else {
     686           0 :     self->epoch_stakes = NULL;
     687           0 :   }
     688           0 :   self->is_delta = fd_rng_uchar( rng );
     689           0 :   return mem;
     690           0 : }
     691             : 
     692           0 : void *fd_bank_hash_stats_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     693           0 :   fd_bank_hash_stats_t *self = (fd_bank_hash_stats_t *) mem;
     694           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bank_hash_stats_t);
     695           0 :   fd_bank_hash_stats_new(mem);
     696           0 :   self->num_updated_accounts = fd_rng_ulong( rng );
     697           0 :   self->num_removed_accounts = fd_rng_ulong( rng );
     698           0 :   self->num_lamports_stored = fd_rng_ulong( rng );
     699           0 :   self->total_data_len = fd_rng_ulong( rng );
     700           0 :   self->num_executable_accounts = fd_rng_ulong( rng );
     701           0 :   return mem;
     702           0 : }
     703             : 
     704           0 : void *fd_bank_hash_info_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     705           0 :   fd_bank_hash_info_t *self = (fd_bank_hash_info_t *) mem;
     706           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bank_hash_info_t);
     707           0 :   fd_bank_hash_info_new(mem);
     708           0 :   fd_hash_generate( &self->accounts_delta_hash, alloc_mem, rng );
     709           0 :   fd_hash_generate( &self->accounts_hash, alloc_mem, rng );
     710           0 :   fd_bank_hash_stats_generate( &self->stats, alloc_mem, rng );
     711           0 :   return mem;
     712           0 : }
     713             : 
     714           0 : void *fd_slot_map_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     715           0 :   fd_slot_map_pair_t *self = (fd_slot_map_pair_t *) mem;
     716           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_map_pair_t);
     717           0 :   fd_slot_map_pair_new(mem);
     718           0 :   self->slot = fd_rng_ulong( rng );
     719           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
     720           0 :   return mem;
     721           0 : }
     722             : 
     723           0 : void *fd_snapshot_acc_vec_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     724           0 :   fd_snapshot_acc_vec_t *self = (fd_snapshot_acc_vec_t *) mem;
     725           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_snapshot_acc_vec_t);
     726           0 :   fd_snapshot_acc_vec_new(mem);
     727           0 :   self->id = fd_rng_ulong( rng );
     728           0 :   self->file_sz = fd_rng_ulong( rng );
     729           0 :   return mem;
     730           0 : }
     731             : 
     732           0 : void *fd_snapshot_slot_acc_vecs_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     733           0 :   fd_snapshot_slot_acc_vecs_t *self = (fd_snapshot_slot_acc_vecs_t *) mem;
     734           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_snapshot_slot_acc_vecs_t);
     735           0 :   fd_snapshot_slot_acc_vecs_new(mem);
     736           0 :   self->slot = fd_rng_ulong( rng );
     737           0 :   self->account_vecs_len = fd_rng_ulong( rng ) % 8;
     738           0 :   if( self->account_vecs_len ) {
     739           0 :     self->account_vecs = (fd_snapshot_acc_vec_t *) *alloc_mem;
     740           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_snapshot_acc_vec_t)*self->account_vecs_len;
     741           0 :     for( ulong i=0; i < self->account_vecs_len; i++ ) {
     742           0 :       fd_snapshot_acc_vec_new( self->account_vecs + i );
     743           0 :       fd_snapshot_acc_vec_generate( self->account_vecs + i, alloc_mem, rng );
     744           0 :     }
     745           0 :   } else {
     746           0 :     self->account_vecs = NULL;
     747           0 :   }
     748           0 :   return mem;
     749           0 : }
     750             : 
     751           0 : void *fd_reward_type_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     752           0 :   fd_reward_type_t *self = (fd_reward_type_t *) mem;
     753           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_reward_type_t);
     754           0 :   fd_reward_type_new(mem);
     755           0 :   self->discriminant = fd_rng_uint( rng ) % 4;
     756           0 :   return mem;
     757           0 : }
     758             : 
     759           0 : void *fd_solana_accounts_db_fields_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     760           0 :   fd_solana_accounts_db_fields_t *self = (fd_solana_accounts_db_fields_t *) mem;
     761           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_accounts_db_fields_t);
     762           0 :   fd_solana_accounts_db_fields_new(mem);
     763           0 :   self->storages_len = fd_rng_ulong( rng ) % 8;
     764           0 :   if( self->storages_len ) {
     765           0 :     self->storages = (fd_snapshot_slot_acc_vecs_t *) *alloc_mem;
     766           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_snapshot_slot_acc_vecs_t)*self->storages_len;
     767           0 :     for( ulong i=0; i < self->storages_len; i++ ) {
     768           0 :       fd_snapshot_slot_acc_vecs_new( self->storages + i );
     769           0 :       fd_snapshot_slot_acc_vecs_generate( self->storages + i, alloc_mem, rng );
     770           0 :     }
     771           0 :   } else {
     772           0 :     self->storages = NULL;
     773           0 :   }
     774           0 :   self->version = fd_rng_ulong( rng );
     775           0 :   self->slot = fd_rng_ulong( rng );
     776           0 :   fd_bank_hash_info_generate( &self->bank_hash_info, alloc_mem, rng );
     777           0 :   self->historical_roots_len = fd_rng_ulong( rng ) % 8;
     778           0 :   if( self->historical_roots_len ) {
     779           0 :     self->historical_roots = (ulong *) *alloc_mem;
     780           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->historical_roots_len;
     781           0 :     LLVMFuzzerMutate( (uchar *) self->historical_roots, sizeof(ulong)*self->historical_roots_len, sizeof(ulong)*self->historical_roots_len );
     782           0 :   } else {
     783           0 :     self->historical_roots = NULL;
     784           0 :   }
     785           0 :   self->historical_roots_with_hash_len = fd_rng_ulong( rng ) % 8;
     786           0 :   if( self->historical_roots_with_hash_len ) {
     787           0 :     self->historical_roots_with_hash = (fd_slot_map_pair_t *) *alloc_mem;
     788           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_map_pair_t)*self->historical_roots_with_hash_len;
     789           0 :     for( ulong i=0; i < self->historical_roots_with_hash_len; i++ ) {
     790           0 :       fd_slot_map_pair_new( self->historical_roots_with_hash + i );
     791           0 :       fd_slot_map_pair_generate( self->historical_roots_with_hash + i, alloc_mem, rng );
     792           0 :     }
     793           0 :   } else {
     794           0 :     self->historical_roots_with_hash = NULL;
     795           0 :   }
     796           0 :   return mem;
     797           0 : }
     798             : 
     799           0 : void *fd_versioned_epoch_stakes_current_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     800           0 :   fd_versioned_epoch_stakes_current_t *self = (fd_versioned_epoch_stakes_current_t *) mem;
     801           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_versioned_epoch_stakes_current_t);
     802           0 :   fd_versioned_epoch_stakes_current_new(mem);
     803           0 :   fd_stakes_stake_generate( &self->stakes, alloc_mem, rng );
     804           0 :   self->total_stake = fd_rng_ulong( rng );
     805           0 :   ulong node_id_to_vote_accounts_len = fd_rng_ulong( rng ) % 8;
     806           0 :   self->node_id_to_vote_accounts_pool = fd_pubkey_node_vote_accounts_pair_t_map_join_new( alloc_mem, node_id_to_vote_accounts_len );
     807           0 :   self->node_id_to_vote_accounts_root = NULL;
     808           0 :   for( ulong i=0; i < node_id_to_vote_accounts_len; i++ ) {
     809           0 :     fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node = fd_pubkey_node_vote_accounts_pair_t_map_acquire( self->node_id_to_vote_accounts_pool );
     810           0 :     fd_pubkey_node_vote_accounts_pair_generate( &node->elem, alloc_mem, rng );
     811           0 :     fd_pubkey_node_vote_accounts_pair_t_map_insert( self->node_id_to_vote_accounts_pool, &self->node_id_to_vote_accounts_root, node );
     812           0 :   }
     813           0 :   ulong epoch_authorized_voters_len = fd_rng_ulong( rng ) % 8;
     814           0 :   self->epoch_authorized_voters_pool = fd_pubkey_pubkey_pair_t_map_join_new( alloc_mem, epoch_authorized_voters_len );
     815           0 :   self->epoch_authorized_voters_root = NULL;
     816           0 :   for( ulong i=0; i < epoch_authorized_voters_len; i++ ) {
     817           0 :     fd_pubkey_pubkey_pair_t_mapnode_t * node = fd_pubkey_pubkey_pair_t_map_acquire( self->epoch_authorized_voters_pool );
     818           0 :     fd_pubkey_pubkey_pair_generate( &node->elem, alloc_mem, rng );
     819           0 :     fd_pubkey_pubkey_pair_t_map_insert( self->epoch_authorized_voters_pool, &self->epoch_authorized_voters_root, node );
     820           0 :   }
     821           0 :   return mem;
     822           0 : }
     823             : 
     824           0 : void fd_versioned_epoch_stakes_inner_generate( fd_versioned_epoch_stakes_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
     825           0 :   switch (discriminant) {
     826           0 :   case 0: {
     827           0 :     fd_versioned_epoch_stakes_current_generate( &self->Current, alloc_mem, rng );
     828           0 :     break;
     829           0 :   }
     830           0 :   }
     831           0 : }
     832           0 : void *fd_versioned_epoch_stakes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     833           0 :   fd_versioned_epoch_stakes_t *self = (fd_versioned_epoch_stakes_t *) mem;
     834           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_versioned_epoch_stakes_t);
     835           0 :   fd_versioned_epoch_stakes_new(mem);
     836           0 :   self->discriminant = fd_rng_uint( rng ) % 1;
     837           0 :   fd_versioned_epoch_stakes_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
     838           0 :   return mem;
     839           0 : }
     840             : 
     841           0 : void *fd_versioned_epoch_stakes_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     842           0 :   fd_versioned_epoch_stakes_pair_t *self = (fd_versioned_epoch_stakes_pair_t *) mem;
     843           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_versioned_epoch_stakes_pair_t);
     844           0 :   fd_versioned_epoch_stakes_pair_new(mem);
     845           0 :   self->epoch = fd_rng_ulong( rng );
     846           0 :   fd_versioned_epoch_stakes_generate( &self->val, alloc_mem, rng );
     847           0 :   return mem;
     848           0 : }
     849             : 
     850           0 : void *fd_reward_info_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     851           0 :   fd_reward_info_t *self = (fd_reward_info_t *) mem;
     852           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_reward_info_t);
     853           0 :   fd_reward_info_new(mem);
     854           0 :   fd_reward_type_generate( &self->reward_type, alloc_mem, rng );
     855           0 :   self->lamports = fd_rng_ulong( rng );
     856           0 :   self->post_balance = fd_rng_ulong( rng );
     857           0 :   self->commission = fd_rng_ulong( rng );
     858           0 :   return mem;
     859           0 : }
     860             : 
     861           0 : void *fd_slot_lthash_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     862           0 :   fd_slot_lthash_t *self = (fd_slot_lthash_t *) mem;
     863           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_lthash_t);
     864           0 :   fd_slot_lthash_new(mem);
     865           0 :   LLVMFuzzerMutate( &self->lthash[0], sizeof(self->lthash), sizeof(self->lthash) );
     866           0 :   return mem;
     867           0 : }
     868             : 
     869           0 : void *fd_solana_manifest_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     870           0 :   fd_solana_manifest_t *self = (fd_solana_manifest_t *) mem;
     871           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_manifest_t);
     872           0 :   fd_solana_manifest_new(mem);
     873           0 :   fd_versioned_bank_generate( &self->bank, alloc_mem, rng );
     874           0 :   fd_solana_accounts_db_fields_generate( &self->accounts_db, alloc_mem, rng );
     875           0 :   self->lamports_per_signature = fd_rng_ulong( rng );
     876           0 :   {
     877           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     878           0 :     if( !is_null ) {
     879           0 :       self->bank_incremental_snapshot_persistence = (fd_bank_incremental_snapshot_persistence_t *) *alloc_mem;
     880           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bank_incremental_snapshot_persistence_t);
     881           0 :       fd_bank_incremental_snapshot_persistence_new( self->bank_incremental_snapshot_persistence );
     882           0 :       fd_bank_incremental_snapshot_persistence_generate( self->bank_incremental_snapshot_persistence, alloc_mem, rng );
     883           0 :     }
     884           0 :     else {
     885           0 :     self->bank_incremental_snapshot_persistence = NULL;
     886           0 :     }
     887           0 :   }
     888           0 :   {
     889           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     890           0 :     if( !is_null ) {
     891           0 :       self->epoch_account_hash = (fd_hash_t *) *alloc_mem;
     892           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_hash_t);
     893           0 :       fd_hash_new( self->epoch_account_hash );
     894           0 :       fd_hash_generate( self->epoch_account_hash, alloc_mem, rng );
     895           0 :     }
     896           0 :     else {
     897           0 :     self->epoch_account_hash = NULL;
     898           0 :     }
     899           0 :   }
     900           0 :   self->versioned_epoch_stakes_len = fd_rng_ulong( rng ) % 8;
     901           0 :   if( self->versioned_epoch_stakes_len ) {
     902           0 :     self->versioned_epoch_stakes = (fd_versioned_epoch_stakes_pair_t *) *alloc_mem;
     903           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_versioned_epoch_stakes_pair_t)*self->versioned_epoch_stakes_len;
     904           0 :     for( ulong i=0; i < self->versioned_epoch_stakes_len; i++ ) {
     905           0 :       fd_versioned_epoch_stakes_pair_new( self->versioned_epoch_stakes + i );
     906           0 :       fd_versioned_epoch_stakes_pair_generate( self->versioned_epoch_stakes + i, alloc_mem, rng );
     907           0 :     }
     908           0 :   } else {
     909           0 :     self->versioned_epoch_stakes = NULL;
     910           0 :   }
     911           0 :   {
     912           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     913           0 :     if( !is_null ) {
     914           0 :       self->lthash = (fd_slot_lthash_t *) *alloc_mem;
     915           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_lthash_t);
     916           0 :       fd_slot_lthash_new( self->lthash );
     917           0 :       fd_slot_lthash_generate( self->lthash, alloc_mem, rng );
     918           0 :     }
     919           0 :     else {
     920           0 :     self->lthash = NULL;
     921           0 :     }
     922           0 :   }
     923           0 :   return mem;
     924           0 : }
     925             : 
     926           0 : void *fd_rust_duration_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     927           0 :   fd_rust_duration_t *self = (fd_rust_duration_t *) mem;
     928           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_rust_duration_t);
     929           0 :   fd_rust_duration_new(mem);
     930           0 :   self->seconds = fd_rng_ulong( rng );
     931           0 :   self->nanoseconds = fd_rng_uint( rng );
     932           0 :   return mem;
     933           0 : }
     934             : 
     935           0 : void *fd_poh_config_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     936           0 :   fd_poh_config_t *self = (fd_poh_config_t *) mem;
     937           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_poh_config_t);
     938           0 :   fd_poh_config_new(mem);
     939           0 :   fd_rust_duration_generate( &self->target_tick_duration, alloc_mem, rng );
     940           0 :   {
     941           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
     942           0 :     if( !is_null ) {
     943           0 :       self->target_tick_count = (ulong *) *alloc_mem;
     944           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong);
     945           0 :       LLVMFuzzerMutate( (uchar *)self->target_tick_count, sizeof(ulong), sizeof(ulong) );
     946           0 :     }
     947           0 :     else {
     948           0 :     self->target_tick_count = NULL;
     949           0 :     }
     950           0 :   }
     951           0 :   {
     952           0 :     self->has_hashes_per_tick = fd_rng_uchar( rng ) % 2;
     953           0 :     if( self->has_hashes_per_tick ) {
     954           0 :       LLVMFuzzerMutate( (uchar *)&(self->hashes_per_tick), sizeof(ulong), sizeof(ulong) );
     955           0 :     }
     956           0 :   }
     957           0 :   return mem;
     958           0 : }
     959             : 
     960           0 : void *fd_string_pubkey_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     961           0 :   fd_string_pubkey_pair_t *self = (fd_string_pubkey_pair_t *) mem;
     962           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_string_pubkey_pair_t);
     963           0 :   fd_string_pubkey_pair_new(mem);
     964           0 :   self->string_len = fd_rng_ulong( rng ) % 8;
     965           0 :   if( self->string_len ) {
     966           0 :     self->string = (uchar *) *alloc_mem;
     967           0 :     *alloc_mem = (uchar *) *alloc_mem + self->string_len;
     968           0 :     for( ulong i=0; i < self->string_len; ++i) { self->string[i] = fd_rng_uchar( rng ) % 0x80; }
     969           0 :   } else {
     970           0 :     self->string = NULL;
     971           0 :   }
     972           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
     973           0 :   return mem;
     974           0 : }
     975             : 
     976           0 : void *fd_pubkey_account_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     977           0 :   fd_pubkey_account_pair_t *self = (fd_pubkey_account_pair_t *) mem;
     978           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_account_pair_t);
     979           0 :   fd_pubkey_account_pair_new(mem);
     980           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
     981           0 :   fd_solana_account_generate( &self->account, alloc_mem, rng );
     982           0 :   return mem;
     983           0 : }
     984             : 
     985           0 : void *fd_genesis_solana_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
     986           0 :   fd_genesis_solana_t *self = (fd_genesis_solana_t *) mem;
     987           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_genesis_solana_t);
     988           0 :   fd_genesis_solana_new(mem);
     989           0 :   self->creation_time = fd_rng_ulong( rng );
     990           0 :   self->accounts_len = fd_rng_ulong( rng ) % 8;
     991           0 :   if( self->accounts_len ) {
     992           0 :     self->accounts = (fd_pubkey_account_pair_t *) *alloc_mem;
     993           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_account_pair_t)*self->accounts_len;
     994           0 :     for( ulong i=0; i < self->accounts_len; i++ ) {
     995           0 :       fd_pubkey_account_pair_new( self->accounts + i );
     996           0 :       fd_pubkey_account_pair_generate( self->accounts + i, alloc_mem, rng );
     997           0 :     }
     998           0 :   } else {
     999           0 :     self->accounts = NULL;
    1000           0 :   }
    1001           0 :   self->native_instruction_processors_len = fd_rng_ulong( rng ) % 8;
    1002           0 :   if( self->native_instruction_processors_len ) {
    1003           0 :     self->native_instruction_processors = (fd_string_pubkey_pair_t *) *alloc_mem;
    1004           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_string_pubkey_pair_t)*self->native_instruction_processors_len;
    1005           0 :     for( ulong i=0; i < self->native_instruction_processors_len; i++ ) {
    1006           0 :       fd_string_pubkey_pair_new( self->native_instruction_processors + i );
    1007           0 :       fd_string_pubkey_pair_generate( self->native_instruction_processors + i, alloc_mem, rng );
    1008           0 :     }
    1009           0 :   } else {
    1010           0 :     self->native_instruction_processors = NULL;
    1011           0 :   }
    1012           0 :   self->rewards_pools_len = fd_rng_ulong( rng ) % 8;
    1013           0 :   if( self->rewards_pools_len ) {
    1014           0 :     self->rewards_pools = (fd_pubkey_account_pair_t *) *alloc_mem;
    1015           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_account_pair_t)*self->rewards_pools_len;
    1016           0 :     for( ulong i=0; i < self->rewards_pools_len; i++ ) {
    1017           0 :       fd_pubkey_account_pair_new( self->rewards_pools + i );
    1018           0 :       fd_pubkey_account_pair_generate( self->rewards_pools + i, alloc_mem, rng );
    1019           0 :     }
    1020           0 :   } else {
    1021           0 :     self->rewards_pools = NULL;
    1022           0 :   }
    1023           0 :   self->ticks_per_slot = fd_rng_ulong( rng );
    1024           0 :   self->unused = fd_rng_ulong( rng );
    1025           0 :   fd_poh_config_generate( &self->poh_config, alloc_mem, rng );
    1026           0 :   self->__backwards_compat_with_v0_23 = fd_rng_ulong( rng );
    1027           0 :   fd_fee_rate_governor_generate( &self->fee_rate_governor, alloc_mem, rng );
    1028           0 :   fd_rent_generate( &self->rent, alloc_mem, rng );
    1029           0 :   fd_inflation_generate( &self->inflation, alloc_mem, rng );
    1030           0 :   fd_epoch_schedule_generate( &self->epoch_schedule, alloc_mem, rng );
    1031           0 :   self->cluster_type = fd_rng_uint( rng );
    1032           0 :   return mem;
    1033           0 : }
    1034             : 
    1035           0 : void *fd_sol_sysvar_clock_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1036           0 :   fd_sol_sysvar_clock_t *self = (fd_sol_sysvar_clock_t *) mem;
    1037           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_sol_sysvar_clock_t);
    1038           0 :   fd_sol_sysvar_clock_new(mem);
    1039           0 :   self->slot = fd_rng_ulong( rng );
    1040           0 :   self->epoch_start_timestamp = fd_rng_long( rng );
    1041           0 :   self->epoch = fd_rng_ulong( rng );
    1042           0 :   self->leader_schedule_epoch = fd_rng_ulong( rng );
    1043           0 :   self->unix_timestamp = fd_rng_long( rng );
    1044           0 :   return mem;
    1045           0 : }
    1046             : 
    1047           0 : void *fd_sol_sysvar_last_restart_slot_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1048           0 :   fd_sol_sysvar_last_restart_slot_t *self = (fd_sol_sysvar_last_restart_slot_t *) mem;
    1049           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_sol_sysvar_last_restart_slot_t);
    1050           0 :   fd_sol_sysvar_last_restart_slot_new(mem);
    1051           0 :   self->slot = fd_rng_ulong( rng );
    1052           0 :   return mem;
    1053           0 : }
    1054             : 
    1055           0 : void *fd_vote_lockout_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1056           0 :   fd_vote_lockout_t *self = (fd_vote_lockout_t *) mem;
    1057           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_lockout_t);
    1058           0 :   fd_vote_lockout_new(mem);
    1059           0 :   self->slot = fd_rng_ulong( rng );
    1060           0 :   self->confirmation_count = fd_rng_uint( rng );
    1061           0 :   return mem;
    1062           0 : }
    1063             : 
    1064           0 : void *fd_lockout_offset_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1065           0 :   fd_lockout_offset_t *self = (fd_lockout_offset_t *) mem;
    1066           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_lockout_offset_t);
    1067           0 :   fd_lockout_offset_new(mem);
    1068           0 :   self->offset = fd_rng_ulong( rng );
    1069           0 :   self->confirmation_count = fd_rng_uchar( rng );
    1070           0 :   return mem;
    1071           0 : }
    1072             : 
    1073           0 : void *fd_vote_authorized_voter_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1074           0 :   fd_vote_authorized_voter_t *self = (fd_vote_authorized_voter_t *) mem;
    1075           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorized_voter_t);
    1076           0 :   fd_vote_authorized_voter_new(mem);
    1077           0 :   self->epoch = fd_rng_ulong( rng );
    1078           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1079           0 :   self->parent = fd_rng_ulong( rng );
    1080           0 :   self->left = fd_rng_ulong( rng );
    1081           0 :   self->right = fd_rng_ulong( rng );
    1082           0 :   self->prio = fd_rng_ulong( rng );
    1083           0 :   return mem;
    1084           0 : }
    1085             : 
    1086           0 : void *fd_vote_prior_voter_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1087           0 :   fd_vote_prior_voter_t *self = (fd_vote_prior_voter_t *) mem;
    1088           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_prior_voter_t);
    1089           0 :   fd_vote_prior_voter_new(mem);
    1090           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1091           0 :   self->epoch_start = fd_rng_ulong( rng );
    1092           0 :   self->epoch_end = fd_rng_ulong( rng );
    1093           0 :   return mem;
    1094           0 : }
    1095             : 
    1096           0 : void *fd_vote_prior_voter_0_23_5_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1097           0 :   fd_vote_prior_voter_0_23_5_t *self = (fd_vote_prior_voter_0_23_5_t *) mem;
    1098           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_prior_voter_0_23_5_t);
    1099           0 :   fd_vote_prior_voter_0_23_5_new(mem);
    1100           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1101           0 :   self->epoch_start = fd_rng_ulong( rng );
    1102           0 :   self->epoch_end = fd_rng_ulong( rng );
    1103           0 :   self->slot = fd_rng_ulong( rng );
    1104           0 :   return mem;
    1105           0 : }
    1106             : 
    1107           0 : void *fd_vote_epoch_credits_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1108           0 :   fd_vote_epoch_credits_t *self = (fd_vote_epoch_credits_t *) mem;
    1109           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_epoch_credits_t);
    1110           0 :   fd_vote_epoch_credits_new(mem);
    1111           0 :   self->epoch = fd_rng_ulong( rng );
    1112           0 :   self->credits = fd_rng_ulong( rng );
    1113           0 :   self->prev_credits = fd_rng_ulong( rng );
    1114           0 :   return mem;
    1115           0 : }
    1116             : 
    1117           0 : void *fd_vote_block_timestamp_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1118           0 :   fd_vote_block_timestamp_t *self = (fd_vote_block_timestamp_t *) mem;
    1119           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_block_timestamp_t);
    1120           0 :   fd_vote_block_timestamp_new(mem);
    1121           0 :   self->slot = fd_rng_ulong( rng );
    1122           0 :   self->timestamp = fd_rng_long( rng );
    1123           0 :   return mem;
    1124           0 : }
    1125             : 
    1126           0 : void *fd_vote_prior_voters_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1127           0 :   fd_vote_prior_voters_t *self = (fd_vote_prior_voters_t *) mem;
    1128           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_prior_voters_t);
    1129           0 :   fd_vote_prior_voters_new(mem);
    1130           0 :   for( ulong i=0; i<32; i++ ) {
    1131           0 :     fd_vote_prior_voter_generate( self->buf + i, alloc_mem, rng );
    1132           0 :   }
    1133           0 :   self->idx = fd_rng_ulong( rng );
    1134           0 :   self->is_empty = fd_rng_uchar( rng );
    1135           0 :   return mem;
    1136           0 : }
    1137             : 
    1138           0 : void *fd_vote_prior_voters_0_23_5_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1139           0 :   fd_vote_prior_voters_0_23_5_t *self = (fd_vote_prior_voters_0_23_5_t *) mem;
    1140           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_prior_voters_0_23_5_t);
    1141           0 :   fd_vote_prior_voters_0_23_5_new(mem);
    1142           0 :   for( ulong i=0; i<32; i++ ) {
    1143           0 :     fd_vote_prior_voter_0_23_5_generate( self->buf + i, alloc_mem, rng );
    1144           0 :   }
    1145           0 :   self->idx = fd_rng_ulong( rng );
    1146           0 :   return mem;
    1147           0 : }
    1148             : 
    1149           0 : void *fd_landed_vote_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1150           0 :   fd_landed_vote_t *self = (fd_landed_vote_t *) mem;
    1151           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_landed_vote_t);
    1152           0 :   fd_landed_vote_new(mem);
    1153           0 :   self->latency = fd_rng_uchar( rng );
    1154           0 :   fd_vote_lockout_generate( &self->lockout, alloc_mem, rng );
    1155           0 :   return mem;
    1156           0 : }
    1157             : 
    1158           0 : void *fd_vote_state_0_23_5_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1159           0 :   fd_vote_state_0_23_5_t *self = (fd_vote_state_0_23_5_t *) mem;
    1160           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_state_0_23_5_t);
    1161           0 :   fd_vote_state_0_23_5_new(mem);
    1162           0 :   fd_pubkey_generate( &self->node_pubkey, alloc_mem, rng );
    1163           0 :   fd_pubkey_generate( &self->authorized_voter, alloc_mem, rng );
    1164           0 :   self->authorized_voter_epoch = fd_rng_ulong( rng );
    1165           0 :   fd_vote_prior_voters_0_23_5_generate( &self->prior_voters, alloc_mem, rng );
    1166           0 :   fd_pubkey_generate( &self->authorized_withdrawer, alloc_mem, rng );
    1167           0 :   self->commission = fd_rng_uchar( rng );
    1168           0 :   ulong votes_len = fd_rng_ulong( rng ) % 8;
    1169           0 :   ulong votes_max = fd_ulong_max( votes_len, 32 );
    1170           0 :   self->votes = deq_fd_vote_lockout_t_join_new( alloc_mem, votes_max );
    1171           0 :   for( ulong i=0; i < votes_len; i++ ) {
    1172           0 :     fd_vote_lockout_t * elem = deq_fd_vote_lockout_t_push_tail_nocopy( self->votes );
    1173           0 :     fd_vote_lockout_generate( elem, alloc_mem, rng );
    1174           0 :   }
    1175           0 :   {
    1176           0 :     self->has_root_slot = fd_rng_uchar( rng ) % 2;
    1177           0 :     if( self->has_root_slot ) {
    1178           0 :       LLVMFuzzerMutate( (uchar *)&(self->root_slot), sizeof(ulong), sizeof(ulong) );
    1179           0 :     }
    1180           0 :   }
    1181           0 :   ulong epoch_credits_len = fd_rng_ulong( rng ) % 8;
    1182           0 :   ulong epoch_credits_max = fd_ulong_max( epoch_credits_len, 64 );
    1183           0 :   self->epoch_credits = deq_fd_vote_epoch_credits_t_join_new( alloc_mem, epoch_credits_max );
    1184           0 :   for( ulong i=0; i < epoch_credits_len; i++ ) {
    1185           0 :     fd_vote_epoch_credits_t * elem = deq_fd_vote_epoch_credits_t_push_tail_nocopy( self->epoch_credits );
    1186           0 :     fd_vote_epoch_credits_generate( elem, alloc_mem, rng );
    1187           0 :   }
    1188           0 :   fd_vote_block_timestamp_generate( &self->last_timestamp, alloc_mem, rng );
    1189           0 :   return mem;
    1190           0 : }
    1191             : 
    1192           0 : void *fd_vote_authorized_voters_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1193           0 :   fd_vote_authorized_voters_t *self = (fd_vote_authorized_voters_t *) mem;
    1194           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorized_voters_t);
    1195           0 :   fd_vote_authorized_voters_new(mem);
    1196           0 :   ulong fd_vote_authorized_voters_treap_len = fd_rng_ulong( rng ) % 8;
    1197           0 :   ulong fd_vote_authorized_voters_treap_max = fd_ulong_max( fd_vote_authorized_voters_treap_len, FD_VOTE_AUTHORIZED_VOTERS_MIN );
    1198           0 :   self->pool = fd_vote_authorized_voters_pool_join_new( alloc_mem, fd_vote_authorized_voters_treap_max );
    1199           0 :   self->treap = fd_vote_authorized_voters_treap_join_new( alloc_mem, fd_vote_authorized_voters_treap_max );
    1200           0 :   for( ulong i=0; i < fd_vote_authorized_voters_treap_len; i++ ) {
    1201           0 :     fd_vote_authorized_voter_t * ele = fd_vote_authorized_voters_pool_ele_acquire( self->pool );
    1202           0 :     fd_vote_authorized_voter_generate( ele, alloc_mem, rng );
    1203           0 :     fd_vote_authorized_voter_t * repeated_entry = fd_vote_authorized_voters_treap_ele_query( self->treap, ele->epoch, self->pool );
    1204           0 :     if( repeated_entry ) {
    1205           0 :         fd_vote_authorized_voters_treap_ele_remove( self->treap, repeated_entry, self->pool ); // Remove the element before inserting it back to avoid duplication
    1206           0 :         fd_vote_authorized_voters_pool_ele_release( self->pool, repeated_entry );
    1207           0 :     }
    1208           0 :     fd_vote_authorized_voters_treap_ele_insert( self->treap, ele, self->pool ); /* this cannot fail */
    1209           0 :   }
    1210           0 :   return mem;
    1211           0 : }
    1212             : 
    1213           0 : void *fd_vote_state_1_14_11_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1214           0 :   fd_vote_state_1_14_11_t *self = (fd_vote_state_1_14_11_t *) mem;
    1215           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_state_1_14_11_t);
    1216           0 :   fd_vote_state_1_14_11_new(mem);
    1217           0 :   fd_pubkey_generate( &self->node_pubkey, alloc_mem, rng );
    1218           0 :   fd_pubkey_generate( &self->authorized_withdrawer, alloc_mem, rng );
    1219           0 :   self->commission = fd_rng_uchar( rng );
    1220           0 :   ulong votes_len = fd_rng_ulong( rng ) % 8;
    1221           0 :   ulong votes_max = fd_ulong_max( votes_len, 32 );
    1222           0 :   self->votes = deq_fd_vote_lockout_t_join_new( alloc_mem, votes_max );
    1223           0 :   for( ulong i=0; i < votes_len; i++ ) {
    1224           0 :     fd_vote_lockout_t * elem = deq_fd_vote_lockout_t_push_tail_nocopy( self->votes );
    1225           0 :     fd_vote_lockout_generate( elem, alloc_mem, rng );
    1226           0 :   }
    1227           0 :   {
    1228           0 :     self->has_root_slot = fd_rng_uchar( rng ) % 2;
    1229           0 :     if( self->has_root_slot ) {
    1230           0 :       LLVMFuzzerMutate( (uchar *)&(self->root_slot), sizeof(ulong), sizeof(ulong) );
    1231           0 :     }
    1232           0 :   }
    1233           0 :   fd_vote_authorized_voters_generate( &self->authorized_voters, alloc_mem, rng );
    1234           0 :   fd_vote_prior_voters_generate( &self->prior_voters, alloc_mem, rng );
    1235           0 :   ulong epoch_credits_len = fd_rng_ulong( rng ) % 8;
    1236           0 :   ulong epoch_credits_max = fd_ulong_max( epoch_credits_len, 64 );
    1237           0 :   self->epoch_credits = deq_fd_vote_epoch_credits_t_join_new( alloc_mem, epoch_credits_max );
    1238           0 :   for( ulong i=0; i < epoch_credits_len; i++ ) {
    1239           0 :     fd_vote_epoch_credits_t * elem = deq_fd_vote_epoch_credits_t_push_tail_nocopy( self->epoch_credits );
    1240           0 :     fd_vote_epoch_credits_generate( elem, alloc_mem, rng );
    1241           0 :   }
    1242           0 :   fd_vote_block_timestamp_generate( &self->last_timestamp, alloc_mem, rng );
    1243           0 :   return mem;
    1244           0 : }
    1245             : 
    1246           0 : void *fd_vote_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1247           0 :   fd_vote_state_t *self = (fd_vote_state_t *) mem;
    1248           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_state_t);
    1249           0 :   fd_vote_state_new(mem);
    1250           0 :   fd_pubkey_generate( &self->node_pubkey, alloc_mem, rng );
    1251           0 :   fd_pubkey_generate( &self->authorized_withdrawer, alloc_mem, rng );
    1252           0 :   self->commission = fd_rng_uchar( rng );
    1253           0 :   ulong votes_len = fd_rng_ulong( rng ) % 8;
    1254           0 :   ulong votes_max = fd_ulong_max( votes_len, 32 );
    1255           0 :   self->votes = deq_fd_landed_vote_t_join_new( alloc_mem, votes_max );
    1256           0 :   for( ulong i=0; i < votes_len; i++ ) {
    1257           0 :     fd_landed_vote_t * elem = deq_fd_landed_vote_t_push_tail_nocopy( self->votes );
    1258           0 :     fd_landed_vote_generate( elem, alloc_mem, rng );
    1259           0 :   }
    1260           0 :   {
    1261           0 :     self->has_root_slot = fd_rng_uchar( rng ) % 2;
    1262           0 :     if( self->has_root_slot ) {
    1263           0 :       LLVMFuzzerMutate( (uchar *)&(self->root_slot), sizeof(ulong), sizeof(ulong) );
    1264           0 :     }
    1265           0 :   }
    1266           0 :   fd_vote_authorized_voters_generate( &self->authorized_voters, alloc_mem, rng );
    1267           0 :   fd_vote_prior_voters_generate( &self->prior_voters, alloc_mem, rng );
    1268           0 :   ulong epoch_credits_len = fd_rng_ulong( rng ) % 8;
    1269           0 :   ulong epoch_credits_max = fd_ulong_max( epoch_credits_len, 64 );
    1270           0 :   self->epoch_credits = deq_fd_vote_epoch_credits_t_join_new( alloc_mem, epoch_credits_max );
    1271           0 :   for( ulong i=0; i < epoch_credits_len; i++ ) {
    1272           0 :     fd_vote_epoch_credits_t * elem = deq_fd_vote_epoch_credits_t_push_tail_nocopy( self->epoch_credits );
    1273           0 :     fd_vote_epoch_credits_generate( elem, alloc_mem, rng );
    1274           0 :   }
    1275           0 :   fd_vote_block_timestamp_generate( &self->last_timestamp, alloc_mem, rng );
    1276           0 :   return mem;
    1277           0 : }
    1278             : 
    1279           0 : void fd_vote_state_versioned_inner_generate( fd_vote_state_versioned_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    1280           0 :   switch (discriminant) {
    1281           0 :   case 0: {
    1282           0 :     fd_vote_state_0_23_5_generate( &self->v0_23_5, alloc_mem, rng );
    1283           0 :     break;
    1284           0 :   }
    1285           0 :   case 1: {
    1286           0 :     fd_vote_state_1_14_11_generate( &self->v1_14_11, alloc_mem, rng );
    1287           0 :     break;
    1288           0 :   }
    1289           0 :   case 2: {
    1290           0 :     fd_vote_state_generate( &self->current, alloc_mem, rng );
    1291           0 :     break;
    1292           0 :   }
    1293           0 :   }
    1294           0 : }
    1295           0 : void *fd_vote_state_versioned_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1296           0 :   fd_vote_state_versioned_t *self = (fd_vote_state_versioned_t *) mem;
    1297           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_state_versioned_t);
    1298           0 :   fd_vote_state_versioned_new(mem);
    1299           0 :   self->discriminant = fd_rng_uint( rng ) % 3;
    1300           0 :   fd_vote_state_versioned_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    1301           0 :   return mem;
    1302           0 : }
    1303             : 
    1304           0 : void *fd_vote_state_update_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1305           0 :   fd_vote_state_update_t *self = (fd_vote_state_update_t *) mem;
    1306           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_state_update_t);
    1307           0 :   fd_vote_state_update_new(mem);
    1308           0 :   ulong lockouts_len = fd_rng_ulong( rng ) % 8;
    1309           0 :   ulong lockouts_max = fd_ulong_max( lockouts_len, 32 );
    1310           0 :   self->lockouts = deq_fd_vote_lockout_t_join_new( alloc_mem, lockouts_max );
    1311           0 :   for( ulong i=0; i < lockouts_len; i++ ) {
    1312           0 :     fd_vote_lockout_t * elem = deq_fd_vote_lockout_t_push_tail_nocopy( self->lockouts );
    1313           0 :     fd_vote_lockout_generate( elem, alloc_mem, rng );
    1314           0 :   }
    1315           0 :   {
    1316           0 :     self->has_root = fd_rng_uchar( rng ) % 2;
    1317           0 :     if( self->has_root ) {
    1318           0 :       LLVMFuzzerMutate( (uchar *)&(self->root), sizeof(ulong), sizeof(ulong) );
    1319           0 :     }
    1320           0 :   }
    1321           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1322           0 :   {
    1323           0 :     self->has_timestamp = fd_rng_uchar( rng ) % 2;
    1324           0 :     if( self->has_timestamp ) {
    1325           0 :       LLVMFuzzerMutate( (uchar *)&(self->timestamp), sizeof(long), sizeof(long) );
    1326           0 :     }
    1327           0 :   }
    1328           0 :   return mem;
    1329           0 : }
    1330             : 
    1331           0 : void *fd_compact_vote_state_update_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1332           0 :   fd_compact_vote_state_update_t *self = (fd_compact_vote_state_update_t *) mem;
    1333           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_compact_vote_state_update_t);
    1334           0 :   fd_compact_vote_state_update_new(mem);
    1335           0 :   self->root = fd_rng_ulong( rng );
    1336           0 :   self->lockouts_len = fd_rng_ulong( rng ) % 8;
    1337           0 :   if( self->lockouts_len ) {
    1338           0 :     self->lockouts = (fd_lockout_offset_t *) *alloc_mem;
    1339           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_lockout_offset_t)*self->lockouts_len;
    1340           0 :     for( ulong i=0; i < self->lockouts_len; i++ ) {
    1341           0 :       fd_lockout_offset_new( self->lockouts + i );
    1342           0 :       fd_lockout_offset_generate( self->lockouts + i, alloc_mem, rng );
    1343           0 :     }
    1344           0 :   } else {
    1345           0 :     self->lockouts = NULL;
    1346           0 :   }
    1347           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1348           0 :   {
    1349           0 :     self->has_timestamp = fd_rng_uchar( rng ) % 2;
    1350           0 :     if( self->has_timestamp ) {
    1351           0 :       LLVMFuzzerMutate( (uchar *)&(self->timestamp), sizeof(long), sizeof(long) );
    1352           0 :     }
    1353           0 :   }
    1354           0 :   return mem;
    1355           0 : }
    1356             : 
    1357           0 : void *fd_compact_vote_state_update_switch_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1358           0 :   fd_compact_vote_state_update_switch_t *self = (fd_compact_vote_state_update_switch_t *) mem;
    1359           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_compact_vote_state_update_switch_t);
    1360           0 :   fd_compact_vote_state_update_switch_new(mem);
    1361           0 :   fd_compact_vote_state_update_generate( &self->compact_vote_state_update, alloc_mem, rng );
    1362           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1363           0 :   return mem;
    1364           0 : }
    1365             : 
    1366           0 : void *fd_compact_tower_sync_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1367           0 :   fd_compact_tower_sync_t *self = (fd_compact_tower_sync_t *) mem;
    1368           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_compact_tower_sync_t);
    1369           0 :   fd_compact_tower_sync_new(mem);
    1370           0 :   self->root = fd_rng_ulong( rng );
    1371           0 :   ulong lockout_offsets_len = fd_rng_ulong( rng ) % 8;
    1372           0 :   ulong lockout_offsets_max = fd_ulong_max( lockout_offsets_len, 32 );
    1373           0 :   self->lockout_offsets = deq_fd_lockout_offset_t_join_new( alloc_mem, lockout_offsets_max );
    1374           0 :   for( ulong i=0; i < lockout_offsets_len; i++ ) {
    1375           0 :     fd_lockout_offset_t * elem = deq_fd_lockout_offset_t_push_tail_nocopy( self->lockout_offsets );
    1376           0 :     fd_lockout_offset_generate( elem, alloc_mem, rng );
    1377           0 :   }
    1378           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1379           0 :   {
    1380           0 :     self->has_timestamp = fd_rng_uchar( rng ) % 2;
    1381           0 :     if( self->has_timestamp ) {
    1382           0 :       LLVMFuzzerMutate( (uchar *)&(self->timestamp), sizeof(long), sizeof(long) );
    1383           0 :     }
    1384           0 :   }
    1385           0 :   fd_hash_generate( &self->block_id, alloc_mem, rng );
    1386           0 :   return mem;
    1387           0 : }
    1388             : 
    1389             : 
    1390           0 : void *fd_tower_sync_switch_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1391           0 :   fd_tower_sync_switch_t *self = (fd_tower_sync_switch_t *) mem;
    1392           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_tower_sync_switch_t);
    1393           0 :   fd_tower_sync_switch_new(mem);
    1394           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1395           0 :   return mem;
    1396           0 : }
    1397             : 
    1398           0 : void *fd_slot_history_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1399           0 :   fd_slot_history_t *self = (fd_slot_history_t *) mem;
    1400           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_history_t);
    1401           0 :   fd_slot_history_new(mem);
    1402           0 :   {
    1403           0 :     self->has_bits = fd_rng_uchar( rng ) % 2;
    1404           0 :     if( self->has_bits ) {
    1405           0 :       self->bits_bitvec_len = fd_rng_ulong( rng ) % 8;
    1406           0 :       if( self->bits_bitvec_len ) {
    1407           0 :         self->bits_bitvec = (ulong *) *alloc_mem;
    1408           0 :         *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->bits_bitvec_len;
    1409           0 :         LLVMFuzzerMutate( (uchar *) self->bits_bitvec, sizeof(ulong)*self->bits_bitvec_len, sizeof(ulong)*self->bits_bitvec_len );
    1410           0 :       } else {
    1411           0 :         self->bits_bitvec = NULL;
    1412           0 :       }
    1413           0 :       self->bits_len = self->bits_bitvec_len;
    1414           0 :     } else {
    1415           0 :       self->bits_len = 0UL;
    1416           0 :     }
    1417           0 :   }
    1418           0 :   self->next_slot = fd_rng_ulong( rng );
    1419           0 :   return mem;
    1420           0 : }
    1421             : 
    1422           0 : void *fd_slot_hash_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1423           0 :   fd_slot_hash_t *self = (fd_slot_hash_t *) mem;
    1424           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_hash_t);
    1425           0 :   fd_slot_hash_new(mem);
    1426           0 :   self->slot = fd_rng_ulong( rng );
    1427           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1428           0 :   return mem;
    1429           0 : }
    1430             : 
    1431           0 : void *fd_slot_hashes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1432           0 :   fd_slot_hashes_t *self = (fd_slot_hashes_t *) mem;
    1433           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_hashes_t);
    1434           0 :   fd_slot_hashes_new(mem);
    1435           0 :   ulong hashes_len = fd_rng_ulong( rng ) % 8;
    1436           0 :   ulong hashes_max = fd_ulong_max( hashes_len, 512 );
    1437           0 :   self->hashes = deq_fd_slot_hash_t_join_new( alloc_mem, hashes_max );
    1438           0 :   for( ulong i=0; i < hashes_len; i++ ) {
    1439           0 :     fd_slot_hash_t * elem = deq_fd_slot_hash_t_push_tail_nocopy( self->hashes );
    1440           0 :     fd_slot_hash_generate( elem, alloc_mem, rng );
    1441           0 :   }
    1442           0 :   return mem;
    1443           0 : }
    1444             : 
    1445           0 : void *fd_block_block_hash_entry_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1446           0 :   fd_block_block_hash_entry_t *self = (fd_block_block_hash_entry_t *) mem;
    1447           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_block_block_hash_entry_t);
    1448           0 :   fd_block_block_hash_entry_new(mem);
    1449           0 :   fd_hash_generate( &self->blockhash, alloc_mem, rng );
    1450           0 :   fd_fee_calculator_generate( &self->fee_calculator, alloc_mem, rng );
    1451           0 :   return mem;
    1452           0 : }
    1453             : 
    1454           0 : void *fd_recent_block_hashes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1455           0 :   fd_recent_block_hashes_t *self = (fd_recent_block_hashes_t *) mem;
    1456           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_recent_block_hashes_t);
    1457           0 :   fd_recent_block_hashes_new(mem);
    1458           0 :   ulong hashes_len = fd_rng_ulong( rng ) % 8;
    1459           0 :   ulong hashes_max = fd_ulong_max( hashes_len, 151 );
    1460           0 :   self->hashes = deq_fd_block_block_hash_entry_t_join_new( alloc_mem, hashes_max );
    1461           0 :   for( ulong i=0; i < hashes_len; i++ ) {
    1462           0 :     fd_block_block_hash_entry_t * elem = deq_fd_block_block_hash_entry_t_push_tail_nocopy( self->hashes );
    1463           0 :     fd_block_block_hash_entry_generate( elem, alloc_mem, rng );
    1464           0 :   }
    1465           0 :   return mem;
    1466           0 : }
    1467             : 
    1468           0 : void *fd_slot_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1469           0 :   fd_slot_meta_t *self = (fd_slot_meta_t *) mem;
    1470           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_meta_t);
    1471           0 :   fd_slot_meta_new(mem);
    1472           0 :   self->slot = fd_rng_ulong( rng );
    1473           0 :   self->consumed = fd_rng_ulong( rng );
    1474           0 :   self->received = fd_rng_ulong( rng );
    1475           0 :   self->first_shred_timestamp = fd_rng_long( rng );
    1476           0 :   self->last_index = fd_rng_ulong( rng );
    1477           0 :   self->parent_slot = fd_rng_ulong( rng );
    1478           0 :   self->next_slot_len = fd_rng_ulong( rng ) % 8;
    1479           0 :   if( self->next_slot_len ) {
    1480           0 :     self->next_slot = (ulong *) *alloc_mem;
    1481           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->next_slot_len;
    1482           0 :     LLVMFuzzerMutate( (uchar *) self->next_slot, sizeof(ulong)*self->next_slot_len, sizeof(ulong)*self->next_slot_len );
    1483           0 :   } else {
    1484           0 :     self->next_slot = NULL;
    1485           0 :   }
    1486           0 :   self->is_connected = fd_rng_uchar( rng );
    1487           0 :   self->entry_end_indexes_len = fd_rng_ulong( rng ) % 8;
    1488           0 :   if( self->entry_end_indexes_len ) {
    1489           0 :     self->entry_end_indexes = (uint *) *alloc_mem;
    1490           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(uint)*self->entry_end_indexes_len;
    1491           0 :     LLVMFuzzerMutate( (uchar *) self->entry_end_indexes, sizeof(uint)*self->entry_end_indexes_len, sizeof(uint)*self->entry_end_indexes_len );
    1492           0 :   } else {
    1493           0 :     self->entry_end_indexes = NULL;
    1494           0 :   }
    1495           0 :   return mem;
    1496           0 : }
    1497             : 
    1498           0 : void *fd_clock_timestamp_vote_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1499           0 :   fd_clock_timestamp_vote_t *self = (fd_clock_timestamp_vote_t *) mem;
    1500           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_clock_timestamp_vote_t);
    1501           0 :   fd_clock_timestamp_vote_new(mem);
    1502           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1503           0 :   self->timestamp = fd_rng_long( rng );
    1504           0 :   self->slot = fd_rng_ulong( rng );
    1505           0 :   return mem;
    1506           0 : }
    1507             : 
    1508           0 : void *fd_clock_timestamp_votes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1509           0 :   fd_clock_timestamp_votes_t *self = (fd_clock_timestamp_votes_t *) mem;
    1510           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_clock_timestamp_votes_t);
    1511           0 :   fd_clock_timestamp_votes_new(mem);
    1512           0 :   ulong votes_len = fd_rng_ulong( rng ) % 8;
    1513           0 :   self->votes_pool = fd_clock_timestamp_vote_t_map_join_new( alloc_mem, fd_ulong_max( votes_len, 15000 ) );
    1514           0 :   self->votes_root = NULL;
    1515           0 :   for( ulong i=0; i < votes_len; i++ ) {
    1516           0 :     fd_clock_timestamp_vote_t_mapnode_t * node = fd_clock_timestamp_vote_t_map_acquire( self->votes_pool );
    1517           0 :     fd_clock_timestamp_vote_generate( &node->elem, alloc_mem, rng );
    1518           0 :     fd_clock_timestamp_vote_t_map_insert( self->votes_pool, &self->votes_root, node );
    1519           0 :   }
    1520           0 :   return mem;
    1521           0 : }
    1522             : 
    1523           0 : void *fd_sysvar_fees_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1524           0 :   fd_sysvar_fees_t *self = (fd_sysvar_fees_t *) mem;
    1525           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_sysvar_fees_t);
    1526           0 :   fd_sysvar_fees_new(mem);
    1527           0 :   fd_fee_calculator_generate( &self->fee_calculator, alloc_mem, rng );
    1528           0 :   return mem;
    1529           0 : }
    1530             : 
    1531           0 : void *fd_sysvar_epoch_rewards_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1532           0 :   fd_sysvar_epoch_rewards_t *self = (fd_sysvar_epoch_rewards_t *) mem;
    1533           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_sysvar_epoch_rewards_t);
    1534           0 :   fd_sysvar_epoch_rewards_new(mem);
    1535           0 :   self->distribution_starting_block_height = fd_rng_ulong( rng );
    1536           0 :   self->num_partitions = fd_rng_ulong( rng );
    1537           0 :   fd_hash_generate( &self->parent_blockhash, alloc_mem, rng );
    1538           0 :   self->total_points = fd_rng_uint128( rng );
    1539           0 :   self->total_rewards = fd_rng_ulong( rng );
    1540           0 :   self->distributed_rewards = fd_rng_ulong( rng );
    1541           0 :   self->active = fd_rng_uchar( rng );
    1542           0 :   return mem;
    1543           0 : }
    1544             : 
    1545           0 : void *fd_config_keys_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1546           0 :   fd_config_keys_pair_t *self = (fd_config_keys_pair_t *) mem;
    1547           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_config_keys_pair_t);
    1548           0 :   fd_config_keys_pair_new(mem);
    1549           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
    1550           0 :   self->signer = fd_rng_uchar( rng );
    1551           0 :   return mem;
    1552           0 : }
    1553             : 
    1554           0 : void *fd_stake_config_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1555           0 :   fd_stake_config_t *self = (fd_stake_config_t *) mem;
    1556           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_config_t);
    1557           0 :   fd_stake_config_new(mem);
    1558           0 :   self->config_keys_len = fd_rng_ulong( rng ) % 8;
    1559           0 :   if( self->config_keys_len ) {
    1560           0 :     self->config_keys = (fd_config_keys_pair_t *) *alloc_mem;
    1561           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_config_keys_pair_t)*self->config_keys_len;
    1562           0 :     for( ulong i=0; i < self->config_keys_len; i++ ) {
    1563           0 :       fd_config_keys_pair_new( self->config_keys + i );
    1564           0 :       fd_config_keys_pair_generate( self->config_keys + i, alloc_mem, rng );
    1565           0 :     }
    1566           0 :   } else {
    1567           0 :     self->config_keys = NULL;
    1568           0 :   }
    1569           0 :   self->warmup_cooldown_rate = fd_rng_double_o( rng );
    1570           0 :   self->slash_penalty = fd_rng_uchar( rng );
    1571           0 :   return mem;
    1572           0 : }
    1573             : 
    1574           0 : void *fd_feature_entry_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1575           0 :   fd_feature_entry_t *self = (fd_feature_entry_t *) mem;
    1576           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_feature_entry_t);
    1577           0 :   fd_feature_entry_new(mem);
    1578           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1579           0 :   self->description_len = fd_rng_ulong( rng ) % 8;
    1580           0 :   if( self->description_len ) {
    1581           0 :     self->description = (uchar *) *alloc_mem;
    1582           0 :     *alloc_mem = (uchar *) *alloc_mem + self->description_len;
    1583           0 :     for( ulong i=0; i < self->description_len; ++i) { self->description[i] = fd_rng_uchar( rng ) % 0x80; }
    1584           0 :   } else {
    1585           0 :     self->description = NULL;
    1586           0 :   }
    1587           0 :   self->since_slot = fd_rng_ulong( rng );
    1588           0 :   return mem;
    1589           0 : }
    1590             : 
    1591           0 : void *fd_cluster_type_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1592           0 :   fd_cluster_type_t *self = (fd_cluster_type_t *) mem;
    1593           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_cluster_type_t);
    1594           0 :   fd_cluster_type_new(mem);
    1595           0 :   self->discriminant = fd_rng_uint( rng ) % 4;
    1596           0 :   return mem;
    1597           0 : }
    1598             : 
    1599           0 : void *fd_cluster_version_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1600           0 :   fd_cluster_version_t *self = (fd_cluster_version_t *) mem;
    1601           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_cluster_version_t);
    1602           0 :   fd_cluster_version_new(mem);
    1603           0 :   self->major = fd_rng_uint( rng );
    1604           0 :   self->minor = fd_rng_uint( rng );
    1605           0 :   self->patch = fd_rng_uint( rng );
    1606           0 :   return mem;
    1607           0 : }
    1608             : 
    1609           0 : void *fd_stake_reward_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1610           0 :   fd_stake_reward_t *self = (fd_stake_reward_t *) mem;
    1611           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_reward_t);
    1612           0 :   fd_stake_reward_new(mem);
    1613           0 :   self->prev = fd_rng_ulong( rng );
    1614           0 :   self->next = fd_rng_ulong( rng );
    1615           0 :   self->parent = fd_rng_ulong( rng );
    1616           0 :   fd_pubkey_generate( &self->stake_pubkey, alloc_mem, rng );
    1617           0 :   self->credits_observed = fd_rng_ulong( rng );
    1618           0 :   self->lamports = fd_rng_ulong( rng );
    1619           0 :   self->valid = fd_rng_uchar( rng );
    1620           0 :   return mem;
    1621           0 : }
    1622             : 
    1623           0 : void *fd_vote_reward_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1624           0 :   fd_vote_reward_t *self = (fd_vote_reward_t *) mem;
    1625           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_reward_t);
    1626           0 :   fd_vote_reward_new(mem);
    1627           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1628           0 :   self->vote_rewards = fd_rng_ulong( rng );
    1629           0 :   self->commission = fd_rng_uchar( rng );
    1630           0 :   self->needs_store = fd_rng_uchar( rng );
    1631           0 :   return mem;
    1632           0 : }
    1633             : 
    1634           0 : void *fd_point_value_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1635           0 :   fd_point_value_t *self = (fd_point_value_t *) mem;
    1636           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_point_value_t);
    1637           0 :   fd_point_value_new(mem);
    1638           0 :   self->rewards = fd_rng_ulong( rng );
    1639           0 :   self->points = fd_rng_uint128( rng );
    1640           0 :   return mem;
    1641           0 : }
    1642             : 
    1643           0 : void *fd_partitioned_stake_rewards_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1644           0 :   fd_partitioned_stake_rewards_t *self = (fd_partitioned_stake_rewards_t *) mem;
    1645           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_partitioned_stake_rewards_t);
    1646           0 :   fd_partitioned_stake_rewards_new(mem);
    1647           0 :   self->partitions_len = fd_rng_ulong( rng ) % 8;
    1648           0 :   ulong total_count = 0UL;
    1649           0 :   for( ulong i=0; i < 4096; i++ ) {
    1650           0 :     self->partitions_lengths[i] = fd_rng_ulong( rng ) % 8;
    1651           0 :     total_count += self->partitions_lengths[ i ];
    1652           0 :   }
    1653           0 :   self->pool = fd_partitioned_stake_rewards_pool_join_new( alloc_mem, total_count );
    1654           0 :   self->partitions = fd_partitioned_stake_rewards_dlist_join_new( alloc_mem, self->partitions_len );
    1655           0 :   for( ulong i=0; i < self->partitions_len; i++ ) {
    1656           0 :     fd_partitioned_stake_rewards_dlist_new( &self->partitions[ i ] );
    1657           0 :     for( ulong j=0; j < self->partitions_lengths[ i ]; j++ ) {
    1658           0 :       fd_stake_reward_t * ele = fd_partitioned_stake_rewards_pool_ele_acquire( self->pool );
    1659           0 :       fd_stake_reward_new( ele );
    1660           0 :       fd_stake_reward_generate( ele, alloc_mem, rng );
    1661           0 :       fd_partitioned_stake_rewards_dlist_ele_push_tail( &self->partitions[ i ], ele, self->pool );
    1662           0 :     }
    1663           0 :   }
    1664           0 :   return mem;
    1665           0 : }
    1666             : 
    1667           0 : void *fd_stake_reward_calculation_partitioned_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1668           0 :   fd_stake_reward_calculation_partitioned_t *self = (fd_stake_reward_calculation_partitioned_t *) mem;
    1669           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_reward_calculation_partitioned_t);
    1670           0 :   fd_stake_reward_calculation_partitioned_new(mem);
    1671           0 :   fd_partitioned_stake_rewards_generate( &self->partitioned_stake_rewards, alloc_mem, rng );
    1672           0 :   self->total_stake_rewards_lamports = fd_rng_ulong( rng );
    1673           0 :   return mem;
    1674           0 : }
    1675             : 
    1676           0 : void *fd_stake_reward_calculation_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1677           0 :   fd_stake_reward_calculation_t *self = (fd_stake_reward_calculation_t *) mem;
    1678           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_reward_calculation_t);
    1679           0 :   fd_stake_reward_calculation_new(mem);
    1680           0 :   self->stake_rewards_len = fd_rng_ulong( rng ) % 8;
    1681           0 :   self->pool = fd_stake_reward_calculation_pool_join_new( alloc_mem, self->stake_rewards_len );
    1682           0 :   self->stake_rewards = fd_stake_reward_calculation_dlist_join_new( alloc_mem, self->stake_rewards_len );
    1683           0 :   fd_stake_reward_calculation_dlist_new( self->stake_rewards );
    1684           0 :   for( ulong i=0; i < self->stake_rewards_len; i++ ) {
    1685           0 :     fd_stake_reward_t * ele = fd_stake_reward_calculation_pool_ele_acquire( self->pool );
    1686           0 :     fd_stake_reward_new( ele );
    1687           0 :     fd_stake_reward_generate( ele, alloc_mem, rng );
    1688           0 :     fd_stake_reward_calculation_dlist_ele_push_tail( self->stake_rewards, ele, self->pool );
    1689           0 :   }
    1690           0 :   self->total_stake_rewards_lamports = fd_rng_ulong( rng );
    1691           0 :   return mem;
    1692           0 : }
    1693             : 
    1694           0 : void *fd_calculate_stake_vote_rewards_result_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1695           0 :   fd_calculate_stake_vote_rewards_result_t *self = (fd_calculate_stake_vote_rewards_result_t *) mem;
    1696           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_calculate_stake_vote_rewards_result_t);
    1697           0 :   fd_calculate_stake_vote_rewards_result_new(mem);
    1698           0 :   fd_stake_reward_calculation_generate( &self->stake_reward_calculation, alloc_mem, rng );
    1699           0 :   ulong vote_reward_map_len = fd_rng_ulong( rng ) % 8;
    1700           0 :   self->vote_reward_map_pool = fd_vote_reward_t_map_join_new( alloc_mem, fd_ulong_max( vote_reward_map_len, 15000 ) );
    1701           0 :   self->vote_reward_map_root = NULL;
    1702           0 :   for( ulong i=0; i < vote_reward_map_len; i++ ) {
    1703           0 :     fd_vote_reward_t_mapnode_t * node = fd_vote_reward_t_map_acquire( self->vote_reward_map_pool );
    1704           0 :     fd_vote_reward_generate( &node->elem, alloc_mem, rng );
    1705           0 :     fd_vote_reward_t_map_insert( self->vote_reward_map_pool, &self->vote_reward_map_root, node );
    1706           0 :   }
    1707           0 :   return mem;
    1708           0 : }
    1709             : 
    1710           0 : void *fd_calculate_validator_rewards_result_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1711           0 :   fd_calculate_validator_rewards_result_t *self = (fd_calculate_validator_rewards_result_t *) mem;
    1712           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_calculate_validator_rewards_result_t);
    1713           0 :   fd_calculate_validator_rewards_result_new(mem);
    1714           0 :   fd_calculate_stake_vote_rewards_result_generate( &self->calculate_stake_vote_rewards_result, alloc_mem, rng );
    1715           0 :   fd_point_value_generate( &self->point_value, alloc_mem, rng );
    1716           0 :   return mem;
    1717           0 : }
    1718             : 
    1719           0 : void *fd_calculate_rewards_and_distribute_vote_rewards_result_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1720           0 :   fd_calculate_rewards_and_distribute_vote_rewards_result_t *self = (fd_calculate_rewards_and_distribute_vote_rewards_result_t *) mem;
    1721           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_calculate_rewards_and_distribute_vote_rewards_result_t);
    1722           0 :   fd_calculate_rewards_and_distribute_vote_rewards_result_new(mem);
    1723           0 :   self->total_rewards = fd_rng_ulong( rng );
    1724           0 :   self->distributed_rewards = fd_rng_ulong( rng );
    1725           0 :   fd_point_value_generate( &self->point_value, alloc_mem, rng );
    1726           0 :   fd_stake_reward_calculation_partitioned_generate( &self->stake_rewards_by_partition, alloc_mem, rng );
    1727           0 :   return mem;
    1728           0 : }
    1729             : 
    1730           0 : void *fd_partitioned_rewards_calculation_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1731           0 :   fd_partitioned_rewards_calculation_t *self = (fd_partitioned_rewards_calculation_t *) mem;
    1732           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_partitioned_rewards_calculation_t);
    1733           0 :   fd_partitioned_rewards_calculation_new(mem);
    1734           0 :   ulong vote_reward_map_len = fd_rng_ulong( rng ) % 8;
    1735           0 :   self->vote_reward_map_pool = fd_vote_reward_t_map_join_new( alloc_mem, fd_ulong_max( vote_reward_map_len, 15000 ) );
    1736           0 :   self->vote_reward_map_root = NULL;
    1737           0 :   for( ulong i=0; i < vote_reward_map_len; i++ ) {
    1738           0 :     fd_vote_reward_t_mapnode_t * node = fd_vote_reward_t_map_acquire( self->vote_reward_map_pool );
    1739           0 :     fd_vote_reward_generate( &node->elem, alloc_mem, rng );
    1740           0 :     fd_vote_reward_t_map_insert( self->vote_reward_map_pool, &self->vote_reward_map_root, node );
    1741           0 :   }
    1742           0 :   fd_stake_reward_calculation_partitioned_generate( &self->stake_rewards_by_partition, alloc_mem, rng );
    1743           0 :   self->old_vote_balance_and_staked = fd_rng_ulong( rng );
    1744           0 :   self->validator_rewards = fd_rng_ulong( rng );
    1745           0 :   self->validator_rate = fd_rng_double_o( rng );
    1746           0 :   self->foundation_rate = fd_rng_double_o( rng );
    1747           0 :   self->prev_epoch_duration_in_years = fd_rng_double_o( rng );
    1748           0 :   self->capitalization = fd_rng_ulong( rng );
    1749           0 :   fd_point_value_generate( &self->point_value, alloc_mem, rng );
    1750           0 :   return mem;
    1751           0 : }
    1752             : 
    1753           0 : void *fd_start_block_height_and_rewards_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1754           0 :   fd_start_block_height_and_rewards_t *self = (fd_start_block_height_and_rewards_t *) mem;
    1755           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_start_block_height_and_rewards_t);
    1756           0 :   fd_start_block_height_and_rewards_new(mem);
    1757           0 :   self->distribution_starting_block_height = fd_rng_ulong( rng );
    1758           0 :   fd_partitioned_stake_rewards_generate( &self->partitioned_stake_rewards, alloc_mem, rng );
    1759           0 :   return mem;
    1760           0 : }
    1761             : 
    1762           0 : void *fd_fd_epoch_reward_status_inner_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1763           0 :   fd_fd_epoch_reward_status_inner_t *self = (fd_fd_epoch_reward_status_inner_t *) mem;
    1764           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_fd_epoch_reward_status_inner_t);
    1765           0 :   fd_fd_epoch_reward_status_inner_new(mem);
    1766           0 :   fd_start_block_height_and_rewards_generate( &self->Active, alloc_mem, rng );
    1767           0 :   return mem;
    1768           0 : }
    1769             : 
    1770           0 : void fd_epoch_reward_status_inner_generate( fd_epoch_reward_status_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    1771           0 :   switch (discriminant) {
    1772           0 :   case 0: {
    1773           0 :     fd_start_block_height_and_rewards_generate( &self->Active, alloc_mem, rng );
    1774           0 :     break;
    1775           0 :   }
    1776           0 :   }
    1777           0 : }
    1778           0 : void *fd_epoch_reward_status_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1779           0 :   fd_epoch_reward_status_t *self = (fd_epoch_reward_status_t *) mem;
    1780           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_reward_status_t);
    1781           0 :   fd_epoch_reward_status_new(mem);
    1782           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    1783           0 :   fd_epoch_reward_status_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    1784           0 :   return mem;
    1785           0 : }
    1786             : 
    1787           0 : void *fd_prev_epoch_inflation_rewards_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1788           0 :   fd_prev_epoch_inflation_rewards_t *self = (fd_prev_epoch_inflation_rewards_t *) mem;
    1789           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_prev_epoch_inflation_rewards_t);
    1790           0 :   fd_prev_epoch_inflation_rewards_new(mem);
    1791           0 :   self->validator_rewards = fd_rng_ulong( rng );
    1792           0 :   self->prev_epoch_duration_in_years = fd_rng_double_o( rng );
    1793           0 :   self->validator_rate = fd_rng_double_o( rng );
    1794           0 :   self->foundation_rate = fd_rng_double_o( rng );
    1795           0 :   return mem;
    1796           0 : }
    1797             : 
    1798           0 : void *fd_vote_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1799           0 :   fd_vote_t *self = (fd_vote_t *) mem;
    1800           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_t);
    1801           0 :   fd_vote_new(mem);
    1802           0 :   ulong slots_len = fd_rng_ulong( rng ) % 8;
    1803           0 :   self->slots = deq_ulong_join_new( alloc_mem, slots_len );
    1804           0 :   for( ulong i=0; i < slots_len; i++ ) {
    1805           0 :     ulong * elem = deq_ulong_push_tail_nocopy( self->slots );
    1806           0 :     LLVMFuzzerMutate( (uchar *) elem, sizeof(ulong), sizeof(ulong) );
    1807           0 :   }
    1808           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1809           0 :   {
    1810           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    1811           0 :     if( !is_null ) {
    1812           0 :       self->timestamp = (long *) *alloc_mem;
    1813           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(long);
    1814           0 :       LLVMFuzzerMutate( (uchar *)self->timestamp, sizeof(long), sizeof(long) );
    1815           0 :     }
    1816           0 :     else {
    1817           0 :     self->timestamp = NULL;
    1818           0 :     }
    1819           0 :   }
    1820           0 :   return mem;
    1821           0 : }
    1822             : 
    1823           0 : void *fd_vote_init_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1824           0 :   fd_vote_init_t *self = (fd_vote_init_t *) mem;
    1825           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_init_t);
    1826           0 :   fd_vote_init_new(mem);
    1827           0 :   fd_pubkey_generate( &self->node_pubkey, alloc_mem, rng );
    1828           0 :   fd_pubkey_generate( &self->authorized_voter, alloc_mem, rng );
    1829           0 :   fd_pubkey_generate( &self->authorized_withdrawer, alloc_mem, rng );
    1830           0 :   self->commission = fd_rng_uchar( rng );
    1831           0 :   return mem;
    1832           0 : }
    1833             : 
    1834           0 : void *fd_vote_authorize_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1835           0 :   fd_vote_authorize_t *self = (fd_vote_authorize_t *) mem;
    1836           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorize_t);
    1837           0 :   fd_vote_authorize_new(mem);
    1838           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    1839           0 :   return mem;
    1840           0 : }
    1841             : 
    1842           0 : void *fd_vote_authorize_pubkey_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1843           0 :   fd_vote_authorize_pubkey_t *self = (fd_vote_authorize_pubkey_t *) mem;
    1844           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorize_pubkey_t);
    1845           0 :   fd_vote_authorize_pubkey_new(mem);
    1846           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    1847           0 :   fd_vote_authorize_generate( &self->vote_authorize, alloc_mem, rng );
    1848           0 :   return mem;
    1849           0 : }
    1850             : 
    1851           0 : void *fd_vote_switch_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1852           0 :   fd_vote_switch_t *self = (fd_vote_switch_t *) mem;
    1853           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_switch_t);
    1854           0 :   fd_vote_switch_new(mem);
    1855           0 :   fd_vote_generate( &self->vote, alloc_mem, rng );
    1856           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1857           0 :   return mem;
    1858           0 : }
    1859             : 
    1860           0 : void *fd_update_vote_state_switch_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1861           0 :   fd_update_vote_state_switch_t *self = (fd_update_vote_state_switch_t *) mem;
    1862           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_update_vote_state_switch_t);
    1863           0 :   fd_update_vote_state_switch_new(mem);
    1864           0 :   fd_vote_state_update_generate( &self->vote_state_update, alloc_mem, rng );
    1865           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    1866           0 :   return mem;
    1867           0 : }
    1868             : 
    1869           0 : void *fd_vote_authorize_with_seed_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1870           0 :   fd_vote_authorize_with_seed_args_t *self = (fd_vote_authorize_with_seed_args_t *) mem;
    1871           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorize_with_seed_args_t);
    1872           0 :   fd_vote_authorize_with_seed_args_new(mem);
    1873           0 :   fd_vote_authorize_generate( &self->authorization_type, alloc_mem, rng );
    1874           0 :   fd_pubkey_generate( &self->current_authority_derived_key_owner, alloc_mem, rng );
    1875           0 :   self->current_authority_derived_key_seed_len = fd_rng_ulong( rng ) % 8;
    1876           0 :   if( self->current_authority_derived_key_seed_len ) {
    1877           0 :     self->current_authority_derived_key_seed = (uchar *) *alloc_mem;
    1878           0 :     *alloc_mem = (uchar *) *alloc_mem + self->current_authority_derived_key_seed_len;
    1879           0 :     for( ulong i=0; i < self->current_authority_derived_key_seed_len; ++i) { self->current_authority_derived_key_seed[i] = fd_rng_uchar( rng ) % 0x80; }
    1880           0 :   } else {
    1881           0 :     self->current_authority_derived_key_seed = NULL;
    1882           0 :   }
    1883           0 :   fd_pubkey_generate( &self->new_authority, alloc_mem, rng );
    1884           0 :   return mem;
    1885           0 : }
    1886             : 
    1887           0 : void *fd_vote_authorize_checked_with_seed_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1888           0 :   fd_vote_authorize_checked_with_seed_args_t *self = (fd_vote_authorize_checked_with_seed_args_t *) mem;
    1889           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_authorize_checked_with_seed_args_t);
    1890           0 :   fd_vote_authorize_checked_with_seed_args_new(mem);
    1891           0 :   fd_vote_authorize_generate( &self->authorization_type, alloc_mem, rng );
    1892           0 :   fd_pubkey_generate( &self->current_authority_derived_key_owner, alloc_mem, rng );
    1893           0 :   self->current_authority_derived_key_seed_len = fd_rng_ulong( rng ) % 8;
    1894           0 :   if( self->current_authority_derived_key_seed_len ) {
    1895           0 :     self->current_authority_derived_key_seed = (uchar *) *alloc_mem;
    1896           0 :     *alloc_mem = (uchar *) *alloc_mem + self->current_authority_derived_key_seed_len;
    1897           0 :     for( ulong i=0; i < self->current_authority_derived_key_seed_len; ++i) { self->current_authority_derived_key_seed[i] = fd_rng_uchar( rng ) % 0x80; }
    1898           0 :   } else {
    1899           0 :     self->current_authority_derived_key_seed = NULL;
    1900           0 :   }
    1901           0 :   return mem;
    1902           0 : }
    1903             : 
    1904           0 : void fd_vote_instruction_inner_generate( fd_vote_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    1905           0 :   switch (discriminant) {
    1906           0 :   case 0: {
    1907           0 :     fd_vote_init_generate( &self->initialize_account, alloc_mem, rng );
    1908           0 :     break;
    1909           0 :   }
    1910           0 :   case 1: {
    1911           0 :     fd_vote_authorize_pubkey_generate( &self->authorize, alloc_mem, rng );
    1912           0 :     break;
    1913           0 :   }
    1914           0 :   case 2: {
    1915           0 :     fd_vote_generate( &self->vote, alloc_mem, rng );
    1916           0 :     break;
    1917           0 :   }
    1918           0 :   case 3: {
    1919           0 :     self->withdraw = fd_rng_ulong( rng );
    1920           0 :     break;
    1921           0 :   }
    1922           0 :   case 5: {
    1923           0 :     self->update_commission = fd_rng_uchar( rng );
    1924           0 :     break;
    1925           0 :   }
    1926           0 :   case 6: {
    1927           0 :     fd_vote_switch_generate( &self->vote_switch, alloc_mem, rng );
    1928           0 :     break;
    1929           0 :   }
    1930           0 :   case 7: {
    1931           0 :     fd_vote_authorize_generate( &self->authorize_checked, alloc_mem, rng );
    1932           0 :     break;
    1933           0 :   }
    1934           0 :   case 8: {
    1935           0 :     fd_vote_state_update_generate( &self->update_vote_state, alloc_mem, rng );
    1936           0 :     break;
    1937           0 :   }
    1938           0 :   case 9: {
    1939           0 :     fd_update_vote_state_switch_generate( &self->update_vote_state_switch, alloc_mem, rng );
    1940           0 :     break;
    1941           0 :   }
    1942           0 :   case 10: {
    1943           0 :     fd_vote_authorize_with_seed_args_generate( &self->authorize_with_seed, alloc_mem, rng );
    1944           0 :     break;
    1945           0 :   }
    1946           0 :   case 11: {
    1947           0 :     fd_vote_authorize_checked_with_seed_args_generate( &self->authorize_checked_with_seed, alloc_mem, rng );
    1948           0 :     break;
    1949           0 :   }
    1950           0 :   case 12: {
    1951           0 :     fd_compact_vote_state_update_generate( &self->compact_update_vote_state, alloc_mem, rng );
    1952           0 :     break;
    1953           0 :   }
    1954           0 :   case 13: {
    1955           0 :     fd_compact_vote_state_update_switch_generate( &self->compact_update_vote_state_switch, alloc_mem, rng );
    1956           0 :     break;
    1957           0 :   }
    1958           0 :   case 14: {
    1959           0 :     break;
    1960           0 :   }
    1961           0 :   case 15: {
    1962           0 :     fd_tower_sync_switch_generate( &self->tower_sync_switch, alloc_mem, rng );
    1963           0 :     break;
    1964           0 :   }
    1965           0 :   }
    1966           0 : }
    1967           0 : void *fd_vote_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1968           0 :   fd_vote_instruction_t *self = (fd_vote_instruction_t *) mem;
    1969           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_instruction_t);
    1970           0 :   fd_vote_instruction_new(mem);
    1971           0 :   self->discriminant = fd_rng_uint( rng ) % 16;
    1972           0 :   while( self->discriminant == 14 || self->discriminant == 15 ) { self->discriminant = fd_rng_uint( rng ) % 16; }
    1973           0 :   fd_vote_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    1974           0 :   return mem;
    1975           0 : }
    1976             : 
    1977           0 : void *fd_system_program_instruction_create_account_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1978           0 :   fd_system_program_instruction_create_account_t *self = (fd_system_program_instruction_create_account_t *) mem;
    1979           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_create_account_t);
    1980           0 :   fd_system_program_instruction_create_account_new(mem);
    1981           0 :   self->lamports = fd_rng_ulong( rng );
    1982           0 :   self->space = fd_rng_ulong( rng );
    1983           0 :   fd_pubkey_generate( &self->owner, alloc_mem, rng );
    1984           0 :   return mem;
    1985           0 : }
    1986             : 
    1987           0 : void *fd_system_program_instruction_create_account_with_seed_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    1988           0 :   fd_system_program_instruction_create_account_with_seed_t *self = (fd_system_program_instruction_create_account_with_seed_t *) mem;
    1989           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_create_account_with_seed_t);
    1990           0 :   fd_system_program_instruction_create_account_with_seed_new(mem);
    1991           0 :   fd_pubkey_generate( &self->base, alloc_mem, rng );
    1992           0 :   self->seed_len = fd_rng_ulong( rng ) % 8;
    1993           0 :   if( self->seed_len ) {
    1994           0 :     self->seed = (uchar *) *alloc_mem;
    1995           0 :     *alloc_mem = (uchar *) *alloc_mem + self->seed_len;
    1996           0 :     for( ulong i=0; i < self->seed_len; ++i) { self->seed[i] = fd_rng_uchar( rng ) % 0x80; }
    1997           0 :   } else {
    1998           0 :     self->seed = NULL;
    1999           0 :   }
    2000           0 :   self->lamports = fd_rng_ulong( rng );
    2001           0 :   self->space = fd_rng_ulong( rng );
    2002           0 :   fd_pubkey_generate( &self->owner, alloc_mem, rng );
    2003           0 :   return mem;
    2004           0 : }
    2005             : 
    2006           0 : void *fd_system_program_instruction_allocate_with_seed_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2007           0 :   fd_system_program_instruction_allocate_with_seed_t *self = (fd_system_program_instruction_allocate_with_seed_t *) mem;
    2008           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_allocate_with_seed_t);
    2009           0 :   fd_system_program_instruction_allocate_with_seed_new(mem);
    2010           0 :   fd_pubkey_generate( &self->base, alloc_mem, rng );
    2011           0 :   self->seed_len = fd_rng_ulong( rng ) % 8;
    2012           0 :   if( self->seed_len ) {
    2013           0 :     self->seed = (uchar *) *alloc_mem;
    2014           0 :     *alloc_mem = (uchar *) *alloc_mem + self->seed_len;
    2015           0 :     for( ulong i=0; i < self->seed_len; ++i) { self->seed[i] = fd_rng_uchar( rng ) % 0x80; }
    2016           0 :   } else {
    2017           0 :     self->seed = NULL;
    2018           0 :   }
    2019           0 :   self->space = fd_rng_ulong( rng );
    2020           0 :   fd_pubkey_generate( &self->owner, alloc_mem, rng );
    2021           0 :   return mem;
    2022           0 : }
    2023             : 
    2024           0 : void *fd_system_program_instruction_assign_with_seed_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2025           0 :   fd_system_program_instruction_assign_with_seed_t *self = (fd_system_program_instruction_assign_with_seed_t *) mem;
    2026           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_assign_with_seed_t);
    2027           0 :   fd_system_program_instruction_assign_with_seed_new(mem);
    2028           0 :   fd_pubkey_generate( &self->base, alloc_mem, rng );
    2029           0 :   self->seed_len = fd_rng_ulong( rng ) % 8;
    2030           0 :   if( self->seed_len ) {
    2031           0 :     self->seed = (uchar *) *alloc_mem;
    2032           0 :     *alloc_mem = (uchar *) *alloc_mem + self->seed_len;
    2033           0 :     for( ulong i=0; i < self->seed_len; ++i) { self->seed[i] = fd_rng_uchar( rng ) % 0x80; }
    2034           0 :   } else {
    2035           0 :     self->seed = NULL;
    2036           0 :   }
    2037           0 :   fd_pubkey_generate( &self->owner, alloc_mem, rng );
    2038           0 :   return mem;
    2039           0 : }
    2040             : 
    2041           0 : void *fd_system_program_instruction_transfer_with_seed_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2042           0 :   fd_system_program_instruction_transfer_with_seed_t *self = (fd_system_program_instruction_transfer_with_seed_t *) mem;
    2043           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_transfer_with_seed_t);
    2044           0 :   fd_system_program_instruction_transfer_with_seed_new(mem);
    2045           0 :   self->lamports = fd_rng_ulong( rng );
    2046           0 :   self->from_seed_len = fd_rng_ulong( rng ) % 8;
    2047           0 :   if( self->from_seed_len ) {
    2048           0 :     self->from_seed = (uchar *) *alloc_mem;
    2049           0 :     *alloc_mem = (uchar *) *alloc_mem + self->from_seed_len;
    2050           0 :     for( ulong i=0; i < self->from_seed_len; ++i) { self->from_seed[i] = fd_rng_uchar( rng ) % 0x80; }
    2051           0 :   } else {
    2052           0 :     self->from_seed = NULL;
    2053           0 :   }
    2054           0 :   fd_pubkey_generate( &self->from_owner, alloc_mem, rng );
    2055           0 :   return mem;
    2056           0 : }
    2057             : 
    2058           0 : void fd_system_program_instruction_inner_generate( fd_system_program_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2059           0 :   switch (discriminant) {
    2060           0 :   case 0: {
    2061           0 :     fd_system_program_instruction_create_account_generate( &self->create_account, alloc_mem, rng );
    2062           0 :     break;
    2063           0 :   }
    2064           0 :   case 1: {
    2065           0 :     fd_pubkey_generate( &self->assign, alloc_mem, rng );
    2066           0 :     break;
    2067           0 :   }
    2068           0 :   case 2: {
    2069           0 :     self->transfer = fd_rng_ulong( rng );
    2070           0 :     break;
    2071           0 :   }
    2072           0 :   case 3: {
    2073           0 :     fd_system_program_instruction_create_account_with_seed_generate( &self->create_account_with_seed, alloc_mem, rng );
    2074           0 :     break;
    2075           0 :   }
    2076           0 :   case 5: {
    2077           0 :     self->withdraw_nonce_account = fd_rng_ulong( rng );
    2078           0 :     break;
    2079           0 :   }
    2080           0 :   case 6: {
    2081           0 :     fd_pubkey_generate( &self->initialize_nonce_account, alloc_mem, rng );
    2082           0 :     break;
    2083           0 :   }
    2084           0 :   case 7: {
    2085           0 :     fd_pubkey_generate( &self->authorize_nonce_account, alloc_mem, rng );
    2086           0 :     break;
    2087           0 :   }
    2088           0 :   case 8: {
    2089           0 :     self->allocate = fd_rng_ulong( rng );
    2090           0 :     break;
    2091           0 :   }
    2092           0 :   case 9: {
    2093           0 :     fd_system_program_instruction_allocate_with_seed_generate( &self->allocate_with_seed, alloc_mem, rng );
    2094           0 :     break;
    2095           0 :   }
    2096           0 :   case 10: {
    2097           0 :     fd_system_program_instruction_assign_with_seed_generate( &self->assign_with_seed, alloc_mem, rng );
    2098           0 :     break;
    2099           0 :   }
    2100           0 :   case 11: {
    2101           0 :     fd_system_program_instruction_transfer_with_seed_generate( &self->transfer_with_seed, alloc_mem, rng );
    2102           0 :     break;
    2103           0 :   }
    2104           0 :   }
    2105           0 : }
    2106           0 : void *fd_system_program_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2107           0 :   fd_system_program_instruction_t *self = (fd_system_program_instruction_t *) mem;
    2108           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_program_instruction_t);
    2109           0 :   fd_system_program_instruction_new(mem);
    2110           0 :   self->discriminant = fd_rng_uint( rng ) % 13;
    2111           0 :   fd_system_program_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2112           0 :   return mem;
    2113           0 : }
    2114             : 
    2115           0 : void *fd_system_error_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2116           0 :   fd_system_error_t *self = (fd_system_error_t *) mem;
    2117           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_system_error_t);
    2118           0 :   fd_system_error_new(mem);
    2119           0 :   self->discriminant = fd_rng_uint( rng ) % 9;
    2120           0 :   return mem;
    2121           0 : }
    2122             : 
    2123           0 : void *fd_stake_authorized_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2124           0 :   fd_stake_authorized_t *self = (fd_stake_authorized_t *) mem;
    2125           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_authorized_t);
    2126           0 :   fd_stake_authorized_new(mem);
    2127           0 :   fd_pubkey_generate( &self->staker, alloc_mem, rng );
    2128           0 :   fd_pubkey_generate( &self->withdrawer, alloc_mem, rng );
    2129           0 :   return mem;
    2130           0 : }
    2131             : 
    2132           0 : void *fd_stake_lockup_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2133           0 :   fd_stake_lockup_t *self = (fd_stake_lockup_t *) mem;
    2134           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_lockup_t);
    2135           0 :   fd_stake_lockup_new(mem);
    2136           0 :   self->unix_timestamp = fd_rng_long( rng );
    2137           0 :   self->epoch = fd_rng_ulong( rng );
    2138           0 :   fd_pubkey_generate( &self->custodian, alloc_mem, rng );
    2139           0 :   return mem;
    2140           0 : }
    2141             : 
    2142           0 : void *fd_stake_instruction_initialize_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2143           0 :   fd_stake_instruction_initialize_t *self = (fd_stake_instruction_initialize_t *) mem;
    2144           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_instruction_initialize_t);
    2145           0 :   fd_stake_instruction_initialize_new(mem);
    2146           0 :   fd_stake_authorized_generate( &self->authorized, alloc_mem, rng );
    2147           0 :   fd_stake_lockup_generate( &self->lockup, alloc_mem, rng );
    2148           0 :   return mem;
    2149           0 : }
    2150             : 
    2151           0 : void *fd_stake_lockup_custodian_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2152           0 :   fd_stake_lockup_custodian_args_t *self = (fd_stake_lockup_custodian_args_t *) mem;
    2153           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_lockup_custodian_args_t);
    2154           0 :   fd_stake_lockup_custodian_args_new(mem);
    2155           0 :   fd_stake_lockup_generate( &self->lockup, alloc_mem, rng );
    2156           0 :   fd_sol_sysvar_clock_generate( &self->clock, alloc_mem, rng );
    2157           0 :   {
    2158           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2159           0 :     if( !is_null ) {
    2160           0 :       self->custodian = (fd_pubkey_t *) *alloc_mem;
    2161           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t);
    2162           0 :       fd_pubkey_new( self->custodian );
    2163           0 :       fd_pubkey_generate( self->custodian, alloc_mem, rng );
    2164           0 :     }
    2165           0 :     else {
    2166           0 :     self->custodian = NULL;
    2167           0 :     }
    2168           0 :   }
    2169           0 :   return mem;
    2170           0 : }
    2171             : 
    2172           0 : void *fd_stake_authorize_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2173           0 :   fd_stake_authorize_t *self = (fd_stake_authorize_t *) mem;
    2174           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_authorize_t);
    2175           0 :   fd_stake_authorize_new(mem);
    2176           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2177           0 :   return mem;
    2178           0 : }
    2179             : 
    2180           0 : void *fd_stake_instruction_authorize_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2181           0 :   fd_stake_instruction_authorize_t *self = (fd_stake_instruction_authorize_t *) mem;
    2182           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_instruction_authorize_t);
    2183           0 :   fd_stake_instruction_authorize_new(mem);
    2184           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    2185           0 :   fd_stake_authorize_generate( &self->stake_authorize, alloc_mem, rng );
    2186           0 :   return mem;
    2187           0 : }
    2188             : 
    2189           0 : void *fd_authorize_with_seed_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2190           0 :   fd_authorize_with_seed_args_t *self = (fd_authorize_with_seed_args_t *) mem;
    2191           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_authorize_with_seed_args_t);
    2192           0 :   fd_authorize_with_seed_args_new(mem);
    2193           0 :   fd_pubkey_generate( &self->new_authorized_pubkey, alloc_mem, rng );
    2194           0 :   fd_stake_authorize_generate( &self->stake_authorize, alloc_mem, rng );
    2195           0 :   self->authority_seed_len = fd_rng_ulong( rng ) % 8;
    2196           0 :   if( self->authority_seed_len ) {
    2197           0 :     self->authority_seed = (uchar *) *alloc_mem;
    2198           0 :     *alloc_mem = (uchar *) *alloc_mem + self->authority_seed_len;
    2199           0 :     for( ulong i=0; i < self->authority_seed_len; ++i) { self->authority_seed[i] = fd_rng_uchar( rng ) % 0x80; }
    2200           0 :   } else {
    2201           0 :     self->authority_seed = NULL;
    2202           0 :   }
    2203           0 :   fd_pubkey_generate( &self->authority_owner, alloc_mem, rng );
    2204           0 :   return mem;
    2205           0 : }
    2206             : 
    2207           0 : void *fd_authorize_checked_with_seed_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2208           0 :   fd_authorize_checked_with_seed_args_t *self = (fd_authorize_checked_with_seed_args_t *) mem;
    2209           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_authorize_checked_with_seed_args_t);
    2210           0 :   fd_authorize_checked_with_seed_args_new(mem);
    2211           0 :   fd_stake_authorize_generate( &self->stake_authorize, alloc_mem, rng );
    2212           0 :   self->authority_seed_len = fd_rng_ulong( rng ) % 8;
    2213           0 :   if( self->authority_seed_len ) {
    2214           0 :     self->authority_seed = (uchar *) *alloc_mem;
    2215           0 :     *alloc_mem = (uchar *) *alloc_mem + self->authority_seed_len;
    2216           0 :     for( ulong i=0; i < self->authority_seed_len; ++i) { self->authority_seed[i] = fd_rng_uchar( rng ) % 0x80; }
    2217           0 :   } else {
    2218           0 :     self->authority_seed = NULL;
    2219           0 :   }
    2220           0 :   fd_pubkey_generate( &self->authority_owner, alloc_mem, rng );
    2221           0 :   return mem;
    2222           0 : }
    2223             : 
    2224           0 : void *fd_lockup_checked_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2225           0 :   fd_lockup_checked_args_t *self = (fd_lockup_checked_args_t *) mem;
    2226           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_lockup_checked_args_t);
    2227           0 :   fd_lockup_checked_args_new(mem);
    2228           0 :   {
    2229           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2230           0 :     if( !is_null ) {
    2231           0 :       self->unix_timestamp = (long *) *alloc_mem;
    2232           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(long);
    2233           0 :       LLVMFuzzerMutate( (uchar *)self->unix_timestamp, sizeof(long), sizeof(long) );
    2234           0 :     }
    2235           0 :     else {
    2236           0 :     self->unix_timestamp = NULL;
    2237           0 :     }
    2238           0 :   }
    2239           0 :   {
    2240           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2241           0 :     if( !is_null ) {
    2242           0 :       self->epoch = (ulong *) *alloc_mem;
    2243           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong);
    2244           0 :       LLVMFuzzerMutate( (uchar *)self->epoch, sizeof(ulong), sizeof(ulong) );
    2245           0 :     }
    2246           0 :     else {
    2247           0 :     self->epoch = NULL;
    2248           0 :     }
    2249           0 :   }
    2250           0 :   return mem;
    2251           0 : }
    2252             : 
    2253           0 : void *fd_lockup_args_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2254           0 :   fd_lockup_args_t *self = (fd_lockup_args_t *) mem;
    2255           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_lockup_args_t);
    2256           0 :   fd_lockup_args_new(mem);
    2257           0 :   {
    2258           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2259           0 :     if( !is_null ) {
    2260           0 :       self->unix_timestamp = (long *) *alloc_mem;
    2261           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(long);
    2262           0 :       LLVMFuzzerMutate( (uchar *)self->unix_timestamp, sizeof(long), sizeof(long) );
    2263           0 :     }
    2264           0 :     else {
    2265           0 :     self->unix_timestamp = NULL;
    2266           0 :     }
    2267           0 :   }
    2268           0 :   {
    2269           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2270           0 :     if( !is_null ) {
    2271           0 :       self->epoch = (ulong *) *alloc_mem;
    2272           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong);
    2273           0 :       LLVMFuzzerMutate( (uchar *)self->epoch, sizeof(ulong), sizeof(ulong) );
    2274           0 :     }
    2275           0 :     else {
    2276           0 :     self->epoch = NULL;
    2277           0 :     }
    2278           0 :   }
    2279           0 :   {
    2280           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2281           0 :     if( !is_null ) {
    2282           0 :       self->custodian = (fd_pubkey_t *) *alloc_mem;
    2283           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t);
    2284           0 :       fd_pubkey_new( self->custodian );
    2285           0 :       fd_pubkey_generate( self->custodian, alloc_mem, rng );
    2286           0 :     }
    2287           0 :     else {
    2288           0 :     self->custodian = NULL;
    2289           0 :     }
    2290           0 :   }
    2291           0 :   return mem;
    2292           0 : }
    2293             : 
    2294           0 : void fd_stake_instruction_inner_generate( fd_stake_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2295           0 :   switch (discriminant) {
    2296           0 :   case 0: {
    2297           0 :     fd_stake_instruction_initialize_generate( &self->initialize, alloc_mem, rng );
    2298           0 :     break;
    2299           0 :   }
    2300           0 :   case 1: {
    2301           0 :     fd_stake_instruction_authorize_generate( &self->authorize, alloc_mem, rng );
    2302           0 :     break;
    2303           0 :   }
    2304           0 :   case 3: {
    2305           0 :     self->split = fd_rng_ulong( rng );
    2306           0 :     break;
    2307           0 :   }
    2308           0 :   case 4: {
    2309           0 :     self->withdraw = fd_rng_ulong( rng );
    2310           0 :     break;
    2311           0 :   }
    2312           0 :   case 6: {
    2313           0 :     fd_lockup_args_generate( &self->set_lockup, alloc_mem, rng );
    2314           0 :     break;
    2315           0 :   }
    2316           0 :   case 8: {
    2317           0 :     fd_authorize_with_seed_args_generate( &self->authorize_with_seed, alloc_mem, rng );
    2318           0 :     break;
    2319           0 :   }
    2320           0 :   case 10: {
    2321           0 :     fd_stake_authorize_generate( &self->authorize_checked, alloc_mem, rng );
    2322           0 :     break;
    2323           0 :   }
    2324           0 :   case 11: {
    2325           0 :     fd_authorize_checked_with_seed_args_generate( &self->authorize_checked_with_seed, alloc_mem, rng );
    2326           0 :     break;
    2327           0 :   }
    2328           0 :   case 12: {
    2329           0 :     fd_lockup_checked_args_generate( &self->set_lockup_checked, alloc_mem, rng );
    2330           0 :     break;
    2331           0 :   }
    2332           0 :   case 16: {
    2333           0 :     self->move_stake = fd_rng_ulong( rng );
    2334           0 :     break;
    2335           0 :   }
    2336           0 :   case 17: {
    2337           0 :     self->move_lamports = fd_rng_ulong( rng );
    2338           0 :     break;
    2339           0 :   }
    2340           0 :   }
    2341           0 : }
    2342           0 : void *fd_stake_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2343           0 :   fd_stake_instruction_t *self = (fd_stake_instruction_t *) mem;
    2344           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_instruction_t);
    2345           0 :   fd_stake_instruction_new(mem);
    2346           0 :   self->discriminant = fd_rng_uint( rng ) % 18;
    2347           0 :   fd_stake_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2348           0 :   return mem;
    2349           0 : }
    2350             : 
    2351           0 : void *fd_stake_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2352           0 :   fd_stake_meta_t *self = (fd_stake_meta_t *) mem;
    2353           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_meta_t);
    2354           0 :   fd_stake_meta_new(mem);
    2355           0 :   self->rent_exempt_reserve = fd_rng_ulong( rng );
    2356           0 :   fd_stake_authorized_generate( &self->authorized, alloc_mem, rng );
    2357           0 :   fd_stake_lockup_generate( &self->lockup, alloc_mem, rng );
    2358           0 :   return mem;
    2359           0 : }
    2360             : 
    2361           0 : void *fd_stake_flags_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2362           0 :   fd_stake_flags_t *self = (fd_stake_flags_t *) mem;
    2363           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_flags_t);
    2364           0 :   fd_stake_flags_new(mem);
    2365           0 :   self->bits = fd_rng_uchar( rng );
    2366           0 :   return mem;
    2367           0 : }
    2368             : 
    2369           0 : void *fd_stake_state_v2_initialized_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2370           0 :   fd_stake_state_v2_initialized_t *self = (fd_stake_state_v2_initialized_t *) mem;
    2371           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_state_v2_initialized_t);
    2372           0 :   fd_stake_state_v2_initialized_new(mem);
    2373           0 :   fd_stake_meta_generate( &self->meta, alloc_mem, rng );
    2374           0 :   return mem;
    2375           0 : }
    2376             : 
    2377           0 : void *fd_stake_state_v2_stake_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2378           0 :   fd_stake_state_v2_stake_t *self = (fd_stake_state_v2_stake_t *) mem;
    2379           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_state_v2_stake_t);
    2380           0 :   fd_stake_state_v2_stake_new(mem);
    2381           0 :   fd_stake_meta_generate( &self->meta, alloc_mem, rng );
    2382           0 :   fd_stake_generate( &self->stake, alloc_mem, rng );
    2383           0 :   fd_stake_flags_generate( &self->stake_flags, alloc_mem, rng );
    2384           0 :   return mem;
    2385           0 : }
    2386             : 
    2387           0 : void fd_stake_state_v2_inner_generate( fd_stake_state_v2_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2388           0 :   switch (discriminant) {
    2389           0 :   case 1: {
    2390           0 :     fd_stake_state_v2_initialized_generate( &self->initialized, alloc_mem, rng );
    2391           0 :     break;
    2392           0 :   }
    2393           0 :   case 2: {
    2394           0 :     fd_stake_state_v2_stake_generate( &self->stake, alloc_mem, rng );
    2395           0 :     break;
    2396           0 :   }
    2397           0 :   }
    2398           0 : }
    2399           0 : void *fd_stake_state_v2_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2400           0 :   fd_stake_state_v2_t *self = (fd_stake_state_v2_t *) mem;
    2401           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_stake_state_v2_t);
    2402           0 :   fd_stake_state_v2_new(mem);
    2403           0 :   self->discriminant = fd_rng_uint( rng ) % 4;
    2404           0 :   fd_stake_state_v2_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2405           0 :   return mem;
    2406           0 : }
    2407             : 
    2408           0 : void *fd_nonce_data_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2409           0 :   fd_nonce_data_t *self = (fd_nonce_data_t *) mem;
    2410           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_nonce_data_t);
    2411           0 :   fd_nonce_data_new(mem);
    2412           0 :   fd_pubkey_generate( &self->authority, alloc_mem, rng );
    2413           0 :   fd_hash_generate( &self->durable_nonce, alloc_mem, rng );
    2414           0 :   fd_fee_calculator_generate( &self->fee_calculator, alloc_mem, rng );
    2415           0 :   return mem;
    2416           0 : }
    2417             : 
    2418           0 : void fd_nonce_state_inner_generate( fd_nonce_state_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2419           0 :   switch (discriminant) {
    2420           0 :   case 1: {
    2421           0 :     fd_nonce_data_generate( &self->initialized, alloc_mem, rng );
    2422           0 :     break;
    2423           0 :   }
    2424           0 :   }
    2425           0 : }
    2426           0 : void *fd_nonce_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2427           0 :   fd_nonce_state_t *self = (fd_nonce_state_t *) mem;
    2428           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_nonce_state_t);
    2429           0 :   fd_nonce_state_new(mem);
    2430           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2431           0 :   fd_nonce_state_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2432           0 :   return mem;
    2433           0 : }
    2434             : 
    2435           0 : void fd_nonce_state_versions_inner_generate( fd_nonce_state_versions_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2436           0 :   switch (discriminant) {
    2437           0 :   case 0: {
    2438           0 :     fd_nonce_state_generate( &self->legacy, alloc_mem, rng );
    2439           0 :     break;
    2440           0 :   }
    2441           0 :   case 1: {
    2442           0 :     fd_nonce_state_generate( &self->current, alloc_mem, rng );
    2443           0 :     break;
    2444           0 :   }
    2445           0 :   }
    2446           0 : }
    2447           0 : void *fd_nonce_state_versions_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2448           0 :   fd_nonce_state_versions_t *self = (fd_nonce_state_versions_t *) mem;
    2449           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_nonce_state_versions_t);
    2450           0 :   fd_nonce_state_versions_new(mem);
    2451           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2452           0 :   fd_nonce_state_versions_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2453           0 :   return mem;
    2454           0 : }
    2455             : 
    2456           0 : void *fd_compute_budget_program_instruction_request_units_deprecated_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2457           0 :   fd_compute_budget_program_instruction_request_units_deprecated_t *self = (fd_compute_budget_program_instruction_request_units_deprecated_t *) mem;
    2458           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t);
    2459           0 :   fd_compute_budget_program_instruction_request_units_deprecated_new(mem);
    2460           0 :   self->units = fd_rng_uint( rng );
    2461           0 :   self->additional_fee = fd_rng_uint( rng );
    2462           0 :   return mem;
    2463           0 : }
    2464             : 
    2465           0 : void fd_compute_budget_program_instruction_inner_generate( fd_compute_budget_program_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2466           0 :   switch (discriminant) {
    2467           0 :   case 0: {
    2468           0 :     fd_compute_budget_program_instruction_request_units_deprecated_generate( &self->request_units_deprecated, alloc_mem, rng );
    2469           0 :     break;
    2470           0 :   }
    2471           0 :   case 1: {
    2472           0 :     self->request_heap_frame = fd_rng_uint( rng );
    2473           0 :     break;
    2474           0 :   }
    2475           0 :   case 2: {
    2476           0 :     self->set_compute_unit_limit = fd_rng_uint( rng );
    2477           0 :     break;
    2478           0 :   }
    2479           0 :   case 3: {
    2480           0 :     self->set_compute_unit_price = fd_rng_ulong( rng );
    2481           0 :     break;
    2482           0 :   }
    2483           0 :   case 4: {
    2484           0 :     self->set_loaded_accounts_data_size_limit = fd_rng_uint( rng );
    2485           0 :     break;
    2486           0 :   }
    2487           0 :   }
    2488           0 : }
    2489           0 : void *fd_compute_budget_program_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2490           0 :   fd_compute_budget_program_instruction_t *self = (fd_compute_budget_program_instruction_t *) mem;
    2491           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_compute_budget_program_instruction_t);
    2492           0 :   fd_compute_budget_program_instruction_new(mem);
    2493           0 :   self->discriminant = fd_rng_uint( rng ) % 5;
    2494           0 :   fd_compute_budget_program_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2495           0 :   return mem;
    2496           0 : }
    2497             : 
    2498           0 : void *fd_config_keys_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2499           0 :   fd_config_keys_t *self = (fd_config_keys_t *) mem;
    2500           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_config_keys_t);
    2501           0 :   fd_config_keys_new(mem);
    2502           0 :   self->keys_len = fd_rng_ulong( rng ) % 8;
    2503           0 :   if( self->keys_len ) {
    2504           0 :     self->keys = (fd_config_keys_pair_t *) *alloc_mem;
    2505           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_config_keys_pair_t)*self->keys_len;
    2506           0 :     for( ulong i=0; i < self->keys_len; i++ ) {
    2507           0 :       fd_config_keys_pair_new( self->keys + i );
    2508           0 :       fd_config_keys_pair_generate( self->keys + i, alloc_mem, rng );
    2509           0 :     }
    2510           0 :   } else {
    2511           0 :     self->keys = NULL;
    2512           0 :   }
    2513           0 :   return mem;
    2514           0 : }
    2515             : 
    2516           0 : void *fd_bpf_loader_program_instruction_write_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2517           0 :   fd_bpf_loader_program_instruction_write_t *self = (fd_bpf_loader_program_instruction_write_t *) mem;
    2518           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_loader_program_instruction_write_t);
    2519           0 :   fd_bpf_loader_program_instruction_write_new(mem);
    2520           0 :   self->offset = fd_rng_uint( rng );
    2521           0 :   self->bytes_len = fd_rng_ulong( rng ) % 8;
    2522           0 :   if( self->bytes_len ) {
    2523           0 :     self->bytes = (uchar *) *alloc_mem;
    2524           0 :     *alloc_mem = (uchar *) *alloc_mem + self->bytes_len;
    2525           0 :     for( ulong i=0; i < self->bytes_len; ++i) { self->bytes[i] = fd_rng_uchar( rng ) % 0x80; }
    2526           0 :   } else {
    2527           0 :     self->bytes = NULL;
    2528           0 :   }
    2529           0 :   return mem;
    2530           0 : }
    2531             : 
    2532           0 : void fd_bpf_loader_program_instruction_inner_generate( fd_bpf_loader_program_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2533           0 :   switch (discriminant) {
    2534           0 :   case 0: {
    2535           0 :     fd_bpf_loader_program_instruction_write_generate( &self->write, alloc_mem, rng );
    2536           0 :     break;
    2537           0 :   }
    2538           0 :   }
    2539           0 : }
    2540           0 : void *fd_bpf_loader_program_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2541           0 :   fd_bpf_loader_program_instruction_t *self = (fd_bpf_loader_program_instruction_t *) mem;
    2542           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_loader_program_instruction_t);
    2543           0 :   fd_bpf_loader_program_instruction_new(mem);
    2544           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2545           0 :   fd_bpf_loader_program_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2546           0 :   return mem;
    2547           0 : }
    2548             : 
    2549           0 : void *fd_loader_v4_program_instruction_write_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2550           0 :   fd_loader_v4_program_instruction_write_t *self = (fd_loader_v4_program_instruction_write_t *) mem;
    2551           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_loader_v4_program_instruction_write_t);
    2552           0 :   fd_loader_v4_program_instruction_write_new(mem);
    2553           0 :   self->offset = fd_rng_uint( rng );
    2554           0 :   self->bytes_len = fd_rng_ulong( rng ) % 8;
    2555           0 :   if( self->bytes_len ) {
    2556           0 :     self->bytes = (uchar *) *alloc_mem;
    2557           0 :     *alloc_mem = (uchar *) *alloc_mem + self->bytes_len;
    2558           0 :     for( ulong i=0; i < self->bytes_len; ++i) { self->bytes[i] = fd_rng_uchar( rng ) % 0x80; }
    2559           0 :   } else {
    2560           0 :     self->bytes = NULL;
    2561           0 :   }
    2562           0 :   return mem;
    2563           0 : }
    2564             : 
    2565           0 : void *fd_loader_v4_program_instruction_copy_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2566           0 :   fd_loader_v4_program_instruction_copy_t *self = (fd_loader_v4_program_instruction_copy_t *) mem;
    2567           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_loader_v4_program_instruction_copy_t);
    2568           0 :   fd_loader_v4_program_instruction_copy_new(mem);
    2569           0 :   self->destination_offset = fd_rng_uint( rng );
    2570           0 :   self->source_offset = fd_rng_uint( rng );
    2571           0 :   self->length = fd_rng_uint( rng );
    2572           0 :   return mem;
    2573           0 : }
    2574             : 
    2575           0 : void *fd_loader_v4_program_instruction_set_program_length_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2576           0 :   fd_loader_v4_program_instruction_set_program_length_t *self = (fd_loader_v4_program_instruction_set_program_length_t *) mem;
    2577           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_loader_v4_program_instruction_set_program_length_t);
    2578           0 :   fd_loader_v4_program_instruction_set_program_length_new(mem);
    2579           0 :   self->new_size = fd_rng_uint( rng );
    2580           0 :   return mem;
    2581           0 : }
    2582             : 
    2583           0 : void fd_loader_v4_program_instruction_inner_generate( fd_loader_v4_program_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2584           0 :   switch (discriminant) {
    2585           0 :   case 0: {
    2586           0 :     fd_loader_v4_program_instruction_write_generate( &self->write, alloc_mem, rng );
    2587           0 :     break;
    2588           0 :   }
    2589           0 :   case 1: {
    2590           0 :     fd_loader_v4_program_instruction_copy_generate( &self->copy, alloc_mem, rng );
    2591           0 :     break;
    2592           0 :   }
    2593           0 :   case 2: {
    2594           0 :     fd_loader_v4_program_instruction_set_program_length_generate( &self->set_program_length, alloc_mem, rng );
    2595           0 :     break;
    2596           0 :   }
    2597           0 :   }
    2598           0 : }
    2599           0 : void *fd_loader_v4_program_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2600           0 :   fd_loader_v4_program_instruction_t *self = (fd_loader_v4_program_instruction_t *) mem;
    2601           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_loader_v4_program_instruction_t);
    2602           0 :   fd_loader_v4_program_instruction_new(mem);
    2603           0 :   self->discriminant = fd_rng_uint( rng ) % 7;
    2604           0 :   fd_loader_v4_program_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2605           0 :   return mem;
    2606           0 : }
    2607             : 
    2608           0 : void *fd_bpf_upgradeable_loader_program_instruction_write_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2609           0 :   fd_bpf_upgradeable_loader_program_instruction_write_t *self = (fd_bpf_upgradeable_loader_program_instruction_write_t *) mem;
    2610           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_program_instruction_write_t);
    2611           0 :   fd_bpf_upgradeable_loader_program_instruction_write_new(mem);
    2612           0 :   self->offset = fd_rng_uint( rng );
    2613           0 :   self->bytes_len = fd_rng_ulong( rng ) % 8;
    2614           0 :   if( self->bytes_len ) {
    2615           0 :     self->bytes = (uchar *) *alloc_mem;
    2616           0 :     *alloc_mem = (uchar *) *alloc_mem + self->bytes_len;
    2617           0 :     for( ulong i=0; i < self->bytes_len; ++i) { self->bytes[i] = fd_rng_uchar( rng ) % 0x80; }
    2618           0 :   } else {
    2619           0 :     self->bytes = NULL;
    2620           0 :   }
    2621           0 :   return mem;
    2622           0 : }
    2623             : 
    2624           0 : void *fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2625           0 :   fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t *self = (fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t *) mem;
    2626           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t);
    2627           0 :   fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_new(mem);
    2628           0 :   self->max_data_len = fd_rng_ulong( rng );
    2629           0 :   return mem;
    2630           0 : }
    2631             : 
    2632           0 : void *fd_bpf_upgradeable_loader_program_instruction_extend_program_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2633           0 :   fd_bpf_upgradeable_loader_program_instruction_extend_program_t *self = (fd_bpf_upgradeable_loader_program_instruction_extend_program_t *) mem;
    2634           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t);
    2635           0 :   fd_bpf_upgradeable_loader_program_instruction_extend_program_new(mem);
    2636           0 :   self->additional_bytes = fd_rng_uint( rng );
    2637           0 :   return mem;
    2638           0 : }
    2639             : 
    2640           0 : void fd_bpf_upgradeable_loader_program_instruction_inner_generate( fd_bpf_upgradeable_loader_program_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2641           0 :   switch (discriminant) {
    2642           0 :   case 1: {
    2643           0 :     fd_bpf_upgradeable_loader_program_instruction_write_generate( &self->write, alloc_mem, rng );
    2644           0 :     break;
    2645           0 :   }
    2646           0 :   case 2: {
    2647           0 :     fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_generate( &self->deploy_with_max_data_len, alloc_mem, rng );
    2648           0 :     break;
    2649           0 :   }
    2650           0 :   case 6: {
    2651           0 :     fd_bpf_upgradeable_loader_program_instruction_extend_program_generate( &self->extend_program, alloc_mem, rng );
    2652           0 :     break;
    2653           0 :   }
    2654           0 :   }
    2655           0 : }
    2656           0 : void *fd_bpf_upgradeable_loader_program_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2657           0 :   fd_bpf_upgradeable_loader_program_instruction_t *self = (fd_bpf_upgradeable_loader_program_instruction_t *) mem;
    2658           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_program_instruction_t);
    2659           0 :   fd_bpf_upgradeable_loader_program_instruction_new(mem);
    2660           0 :   self->discriminant = fd_rng_uint( rng ) % 9;
    2661           0 :   fd_bpf_upgradeable_loader_program_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2662           0 :   return mem;
    2663           0 : }
    2664             : 
    2665           0 : void *fd_bpf_upgradeable_loader_state_buffer_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2666           0 :   fd_bpf_upgradeable_loader_state_buffer_t *self = (fd_bpf_upgradeable_loader_state_buffer_t *) mem;
    2667           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_state_buffer_t);
    2668           0 :   fd_bpf_upgradeable_loader_state_buffer_new(mem);
    2669           0 :   {
    2670           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2671           0 :     if( !is_null ) {
    2672           0 :       self->authority_address = (fd_pubkey_t *) *alloc_mem;
    2673           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t);
    2674           0 :       fd_pubkey_new( self->authority_address );
    2675           0 :       fd_pubkey_generate( self->authority_address, alloc_mem, rng );
    2676           0 :     }
    2677           0 :     else {
    2678           0 :     self->authority_address = NULL;
    2679           0 :     }
    2680           0 :   }
    2681           0 :   return mem;
    2682           0 : }
    2683             : 
    2684           0 : void *fd_bpf_upgradeable_loader_state_program_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2685           0 :   fd_bpf_upgradeable_loader_state_program_t *self = (fd_bpf_upgradeable_loader_state_program_t *) mem;
    2686           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_state_program_t);
    2687           0 :   fd_bpf_upgradeable_loader_state_program_new(mem);
    2688           0 :   fd_pubkey_generate( &self->programdata_address, alloc_mem, rng );
    2689           0 :   return mem;
    2690           0 : }
    2691             : 
    2692           0 : void *fd_bpf_upgradeable_loader_state_program_data_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2693           0 :   fd_bpf_upgradeable_loader_state_program_data_t *self = (fd_bpf_upgradeable_loader_state_program_data_t *) mem;
    2694           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_state_program_data_t);
    2695           0 :   fd_bpf_upgradeable_loader_state_program_data_new(mem);
    2696           0 :   self->slot = fd_rng_ulong( rng );
    2697           0 :   {
    2698           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    2699           0 :     if( !is_null ) {
    2700           0 :       self->upgrade_authority_address = (fd_pubkey_t *) *alloc_mem;
    2701           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t);
    2702           0 :       fd_pubkey_new( self->upgrade_authority_address );
    2703           0 :       fd_pubkey_generate( self->upgrade_authority_address, alloc_mem, rng );
    2704           0 :     }
    2705           0 :     else {
    2706           0 :     self->upgrade_authority_address = NULL;
    2707           0 :     }
    2708           0 :   }
    2709           0 :   return mem;
    2710           0 : }
    2711             : 
    2712           0 : void fd_bpf_upgradeable_loader_state_inner_generate( fd_bpf_upgradeable_loader_state_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2713           0 :   switch (discriminant) {
    2714           0 :   case 1: {
    2715           0 :     fd_bpf_upgradeable_loader_state_buffer_generate( &self->buffer, alloc_mem, rng );
    2716           0 :     break;
    2717           0 :   }
    2718           0 :   case 2: {
    2719           0 :     fd_bpf_upgradeable_loader_state_program_generate( &self->program, alloc_mem, rng );
    2720           0 :     break;
    2721           0 :   }
    2722           0 :   case 3: {
    2723           0 :     fd_bpf_upgradeable_loader_state_program_data_generate( &self->program_data, alloc_mem, rng );
    2724           0 :     break;
    2725           0 :   }
    2726           0 :   }
    2727           0 : }
    2728           0 : void *fd_bpf_upgradeable_loader_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2729           0 :   fd_bpf_upgradeable_loader_state_t *self = (fd_bpf_upgradeable_loader_state_t *) mem;
    2730           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bpf_upgradeable_loader_state_t);
    2731           0 :   fd_bpf_upgradeable_loader_state_new(mem);
    2732           0 :   self->discriminant = fd_rng_uint( rng ) % 4;
    2733           0 :   fd_bpf_upgradeable_loader_state_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2734           0 :   return mem;
    2735           0 : }
    2736             : 
    2737           0 : void *fd_loader_v4_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2738           0 :   fd_loader_v4_state_t *self = (fd_loader_v4_state_t *) mem;
    2739           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_loader_v4_state_t);
    2740           0 :   fd_loader_v4_state_new(mem);
    2741           0 :   self->slot = fd_rng_ulong( rng );
    2742           0 :   fd_pubkey_generate( &self->authority_address_or_next_version, alloc_mem, rng );
    2743           0 :   self->status = fd_rng_ulong( rng );
    2744           0 :   return mem;
    2745           0 : }
    2746             : 
    2747           0 : void *fd_frozen_hash_status_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2748           0 :   fd_frozen_hash_status_t *self = (fd_frozen_hash_status_t *) mem;
    2749           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_frozen_hash_status_t);
    2750           0 :   fd_frozen_hash_status_new(mem);
    2751           0 :   fd_hash_generate( &self->frozen_hash, alloc_mem, rng );
    2752           0 :   self->is_duplicate_confirmed = fd_rng_uchar( rng );
    2753           0 :   return mem;
    2754           0 : }
    2755             : 
    2756           0 : void fd_frozen_hash_versioned_inner_generate( fd_frozen_hash_versioned_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2757           0 :   switch (discriminant) {
    2758           0 :   case 0: {
    2759           0 :     fd_frozen_hash_status_generate( &self->current, alloc_mem, rng );
    2760           0 :     break;
    2761           0 :   }
    2762           0 :   }
    2763           0 : }
    2764           0 : void *fd_frozen_hash_versioned_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2765           0 :   fd_frozen_hash_versioned_t *self = (fd_frozen_hash_versioned_t *) mem;
    2766           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_frozen_hash_versioned_t);
    2767           0 :   fd_frozen_hash_versioned_new(mem);
    2768           0 :   self->discriminant = fd_rng_uint( rng ) % 1;
    2769           0 :   fd_frozen_hash_versioned_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2770           0 :   return mem;
    2771           0 : }
    2772             : 
    2773           0 : void *fd_lookup_table_meta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2774           0 :   fd_lookup_table_meta_t *self = (fd_lookup_table_meta_t *) mem;
    2775           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_lookup_table_meta_t);
    2776           0 :   fd_lookup_table_meta_new(mem);
    2777           0 :   self->deactivation_slot = fd_rng_ulong( rng );
    2778           0 :   self->last_extended_slot = fd_rng_ulong( rng );
    2779           0 :   self->last_extended_slot_start_index = fd_rng_uchar( rng );
    2780           0 :   {
    2781           0 :     self->has_authority = fd_rng_uchar( rng ) % 2;
    2782           0 :     if( self->has_authority ) {
    2783           0 :       fd_pubkey_generate( &self->authority, alloc_mem, rng );
    2784           0 :     }
    2785           0 :   }
    2786           0 :   self->_padding = fd_rng_ushort( rng );
    2787           0 :   return mem;
    2788           0 : }
    2789             : 
    2790           0 : void *fd_address_lookup_table_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2791           0 :   fd_address_lookup_table_t *self = (fd_address_lookup_table_t *) mem;
    2792           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_address_lookup_table_t);
    2793           0 :   fd_address_lookup_table_new(mem);
    2794           0 :   fd_lookup_table_meta_generate( &self->meta, alloc_mem, rng );
    2795           0 :   return mem;
    2796           0 : }
    2797             : 
    2798           0 : void fd_address_lookup_table_state_inner_generate( fd_address_lookup_table_state_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2799           0 :   switch (discriminant) {
    2800           0 :   case 1: {
    2801           0 :     fd_address_lookup_table_generate( &self->lookup_table, alloc_mem, rng );
    2802           0 :     break;
    2803           0 :   }
    2804           0 :   }
    2805           0 : }
    2806           0 : void *fd_address_lookup_table_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2807           0 :   fd_address_lookup_table_state_t *self = (fd_address_lookup_table_state_t *) mem;
    2808           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_address_lookup_table_state_t);
    2809           0 :   fd_address_lookup_table_state_new(mem);
    2810           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2811           0 :   fd_address_lookup_table_state_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2812           0 :   return mem;
    2813           0 : }
    2814             : 
    2815           0 : void *fd_gossip_ping_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2816           0 :   fd_gossip_ping_t *self = (fd_gossip_ping_t *) mem;
    2817           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_ping_t);
    2818           0 :   fd_gossip_ping_new(mem);
    2819           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    2820           0 :   fd_hash_generate( &self->token, alloc_mem, rng );
    2821           0 :   fd_signature_generate( &self->signature, alloc_mem, rng );
    2822           0 :   return mem;
    2823           0 : }
    2824             : 
    2825           0 : void fd_gossip_ip_addr_inner_generate( fd_gossip_ip_addr_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2826           0 :   switch (discriminant) {
    2827           0 :   case 0: {
    2828           0 :     fd_gossip_ip4_addr_generate( &self->ip4, alloc_mem, rng );
    2829           0 :     break;
    2830           0 :   }
    2831           0 :   case 1: {
    2832           0 :     fd_gossip_ip6_addr_generate( &self->ip6, alloc_mem, rng );
    2833           0 :     break;
    2834           0 :   }
    2835           0 :   }
    2836           0 : }
    2837           0 : void *fd_gossip_ip_addr_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2838           0 :   fd_gossip_ip_addr_t *self = (fd_gossip_ip_addr_t *) mem;
    2839           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_ip_addr_t);
    2840           0 :   fd_gossip_ip_addr_new(mem);
    2841           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2842           0 :   fd_gossip_ip_addr_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2843           0 :   return mem;
    2844           0 : }
    2845             : 
    2846           0 : void *fd_gossip_prune_data_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2847           0 :   fd_gossip_prune_data_t *self = (fd_gossip_prune_data_t *) mem;
    2848           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_prune_data_t);
    2849           0 :   fd_gossip_prune_data_new(mem);
    2850           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    2851           0 :   self->prunes_len = fd_rng_ulong( rng ) % 8;
    2852           0 :   if( self->prunes_len ) {
    2853           0 :     self->prunes = (fd_pubkey_t *) *alloc_mem;
    2854           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->prunes_len;
    2855           0 :     for( ulong i=0; i < self->prunes_len; i++ ) {
    2856           0 :       fd_pubkey_new( self->prunes + i );
    2857           0 :       fd_pubkey_generate( self->prunes + i, alloc_mem, rng );
    2858           0 :     }
    2859           0 :   } else {
    2860           0 :     self->prunes = NULL;
    2861           0 :   }
    2862           0 :   fd_signature_generate( &self->signature, alloc_mem, rng );
    2863           0 :   fd_pubkey_generate( &self->destination, alloc_mem, rng );
    2864           0 :   self->wallclock = fd_rng_ulong( rng );
    2865           0 :   return mem;
    2866           0 : }
    2867             : 
    2868           0 : void *fd_gossip_prune_sign_data_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2869           0 :   fd_gossip_prune_sign_data_t *self = (fd_gossip_prune_sign_data_t *) mem;
    2870           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_prune_sign_data_t);
    2871           0 :   fd_gossip_prune_sign_data_new(mem);
    2872           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    2873           0 :   self->prunes_len = fd_rng_ulong( rng ) % 8;
    2874           0 :   if( self->prunes_len ) {
    2875           0 :     self->prunes = (fd_pubkey_t *) *alloc_mem;
    2876           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->prunes_len;
    2877           0 :     for( ulong i=0; i < self->prunes_len; i++ ) {
    2878           0 :       fd_pubkey_new( self->prunes + i );
    2879           0 :       fd_pubkey_generate( self->prunes + i, alloc_mem, rng );
    2880           0 :     }
    2881           0 :   } else {
    2882           0 :     self->prunes = NULL;
    2883           0 :   }
    2884           0 :   fd_pubkey_generate( &self->destination, alloc_mem, rng );
    2885           0 :   self->wallclock = fd_rng_ulong( rng );
    2886           0 :   return mem;
    2887           0 : }
    2888             : 
    2889           0 : void *fd_gossip_prune_sign_data_with_prefix_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2890           0 :   fd_gossip_prune_sign_data_with_prefix_t *self = (fd_gossip_prune_sign_data_with_prefix_t *) mem;
    2891           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_prune_sign_data_with_prefix_t);
    2892           0 :   fd_gossip_prune_sign_data_with_prefix_new(mem);
    2893           0 :   self->prefix_len = fd_rng_ulong( rng ) % 8;
    2894           0 :   if( self->prefix_len ) {
    2895           0 :     self->prefix = (uchar *) *alloc_mem;
    2896           0 :     *alloc_mem = (uchar *) *alloc_mem + self->prefix_len;
    2897           0 :     for( ulong i=0; i < self->prefix_len; ++i) { self->prefix[i] = fd_rng_uchar( rng ) % 0x80; }
    2898           0 :   } else {
    2899           0 :     self->prefix = NULL;
    2900           0 :   }
    2901           0 :   fd_gossip_prune_sign_data_generate( &self->data, alloc_mem, rng );
    2902           0 :   return mem;
    2903           0 : }
    2904             : 
    2905           0 : void *fd_gossip_socket_addr_old_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2906           0 :   fd_gossip_socket_addr_old_t *self = (fd_gossip_socket_addr_old_t *) mem;
    2907           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_addr_old_t);
    2908           0 :   fd_gossip_socket_addr_old_new(mem);
    2909           0 :   fd_gossip_ip_addr_generate( &self->addr, alloc_mem, rng );
    2910           0 :   self->port = fd_rng_ushort( rng );
    2911           0 :   return mem;
    2912           0 : }
    2913             : 
    2914           0 : void *fd_gossip_socket_addr_ip4_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2915           0 :   fd_gossip_socket_addr_ip4_t *self = (fd_gossip_socket_addr_ip4_t *) mem;
    2916           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_addr_ip4_t);
    2917           0 :   fd_gossip_socket_addr_ip4_new(mem);
    2918           0 :   fd_gossip_ip4_addr_generate( &self->addr, alloc_mem, rng );
    2919           0 :   self->port = fd_rng_ushort( rng );
    2920           0 :   return mem;
    2921           0 : }
    2922             : 
    2923           0 : void *fd_gossip_socket_addr_ip6_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2924           0 :   fd_gossip_socket_addr_ip6_t *self = (fd_gossip_socket_addr_ip6_t *) mem;
    2925           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_addr_ip6_t);
    2926           0 :   fd_gossip_socket_addr_ip6_new(mem);
    2927           0 :   fd_gossip_ip6_addr_generate( &self->addr, alloc_mem, rng );
    2928           0 :   self->port = fd_rng_ushort( rng );
    2929           0 :   return mem;
    2930           0 : }
    2931             : 
    2932           0 : void fd_gossip_socket_addr_inner_generate( fd_gossip_socket_addr_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    2933           0 :   switch (discriminant) {
    2934           0 :   case 0: {
    2935           0 :     fd_gossip_socket_addr_ip4_generate( &self->ip4, alloc_mem, rng );
    2936           0 :     break;
    2937           0 :   }
    2938           0 :   case 1: {
    2939           0 :     fd_gossip_socket_addr_ip6_generate( &self->ip6, alloc_mem, rng );
    2940           0 :     break;
    2941           0 :   }
    2942           0 :   }
    2943           0 : }
    2944           0 : void *fd_gossip_socket_addr_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2945           0 :   fd_gossip_socket_addr_t *self = (fd_gossip_socket_addr_t *) mem;
    2946           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_addr_t);
    2947           0 :   fd_gossip_socket_addr_new(mem);
    2948           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    2949           0 :   fd_gossip_socket_addr_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    2950           0 :   return mem;
    2951           0 : }
    2952             : 
    2953           0 : void *fd_gossip_contact_info_v1_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2954           0 :   fd_gossip_contact_info_v1_t *self = (fd_gossip_contact_info_v1_t *) mem;
    2955           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_contact_info_v1_t);
    2956           0 :   fd_gossip_contact_info_v1_new(mem);
    2957           0 :   fd_pubkey_generate( &self->id, alloc_mem, rng );
    2958           0 :   fd_gossip_socket_addr_generate( &self->gossip, alloc_mem, rng );
    2959           0 :   fd_gossip_socket_addr_generate( &self->tvu, alloc_mem, rng );
    2960           0 :   fd_gossip_socket_addr_generate( &self->tvu_fwd, alloc_mem, rng );
    2961           0 :   fd_gossip_socket_addr_generate( &self->repair, alloc_mem, rng );
    2962           0 :   fd_gossip_socket_addr_generate( &self->tpu, alloc_mem, rng );
    2963           0 :   fd_gossip_socket_addr_generate( &self->tpu_fwd, alloc_mem, rng );
    2964           0 :   fd_gossip_socket_addr_generate( &self->tpu_vote, alloc_mem, rng );
    2965           0 :   fd_gossip_socket_addr_generate( &self->rpc, alloc_mem, rng );
    2966           0 :   fd_gossip_socket_addr_generate( &self->rpc_pubsub, alloc_mem, rng );
    2967           0 :   fd_gossip_socket_addr_generate( &self->serve_repair, alloc_mem, rng );
    2968           0 :   self->wallclock = fd_rng_ulong( rng );
    2969           0 :   self->shred_version = fd_rng_ushort( rng );
    2970           0 :   return mem;
    2971           0 : }
    2972             : 
    2973           0 : void *fd_gossip_vote_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2974           0 :   fd_gossip_vote_t *self = (fd_gossip_vote_t *) mem;
    2975           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_vote_t);
    2976           0 :   fd_gossip_vote_new(mem);
    2977           0 :   self->index = fd_rng_uchar( rng );
    2978           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    2979           0 :   fd_flamenco_txn_generate( &self->txn, alloc_mem, rng );
    2980           0 :   self->wallclock = fd_rng_ulong( rng );
    2981           0 :   return mem;
    2982           0 : }
    2983             : 
    2984           0 : void *fd_gossip_deprecated_compression_type_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2985           0 :   fd_gossip_deprecated_compression_type_t *self = (fd_gossip_deprecated_compression_type_t *) mem;
    2986           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_deprecated_compression_type_t);
    2987           0 :   fd_gossip_deprecated_compression_type_new(mem);
    2988           0 :   self->discriminant = fd_rng_uint( rng ) % 3;
    2989           0 :   return mem;
    2990           0 : }
    2991             : 
    2992           0 : void *fd_gossip_deprecated_epoch_incomplete_slots_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    2993           0 :   fd_gossip_deprecated_epoch_incomplete_slots_t *self = (fd_gossip_deprecated_epoch_incomplete_slots_t *) mem;
    2994           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_deprecated_epoch_incomplete_slots_t);
    2995           0 :   fd_gossip_deprecated_epoch_incomplete_slots_new(mem);
    2996           0 :   self->first = fd_rng_ulong( rng );
    2997           0 :   fd_gossip_deprecated_compression_type_generate( &self->compression, alloc_mem, rng );
    2998           0 :   self->compressed_list_len = fd_rng_ulong( rng ) % 8;
    2999           0 :   if( self->compressed_list_len ) {
    3000           0 :     self->compressed_list = (uchar *) *alloc_mem;
    3001           0 :     *alloc_mem = (uchar *) *alloc_mem + self->compressed_list_len;
    3002           0 :     for( ulong i=0; i < self->compressed_list_len; ++i) { self->compressed_list[i] = fd_rng_uchar( rng ) % 0x80; }
    3003           0 :   } else {
    3004           0 :     self->compressed_list = NULL;
    3005           0 :   }
    3006           0 :   return mem;
    3007           0 : }
    3008             : 
    3009           0 : void *fd_gossip_lowest_slot_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3010           0 :   fd_gossip_lowest_slot_t *self = (fd_gossip_lowest_slot_t *) mem;
    3011           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_lowest_slot_t);
    3012           0 :   fd_gossip_lowest_slot_new(mem);
    3013           0 :   self->u8 = fd_rng_uchar( rng );
    3014           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3015           0 :   self->root = fd_rng_ulong( rng );
    3016           0 :   self->lowest = fd_rng_ulong( rng );
    3017           0 :   self->slots_len = fd_rng_ulong( rng ) % 8;
    3018           0 :   if( self->slots_len ) {
    3019           0 :     self->slots = (ulong *) *alloc_mem;
    3020           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->slots_len;
    3021           0 :     LLVMFuzzerMutate( (uchar *) self->slots, sizeof(ulong)*self->slots_len, sizeof(ulong)*self->slots_len );
    3022           0 :   } else {
    3023           0 :     self->slots = NULL;
    3024           0 :   }
    3025           0 :   self->stash_len = fd_rng_ulong( rng ) % 8;
    3026           0 :   if( self->stash_len ) {
    3027           0 :     self->stash = (fd_gossip_deprecated_epoch_incomplete_slots_t *) *alloc_mem;
    3028           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_deprecated_epoch_incomplete_slots_t)*self->stash_len;
    3029           0 :     for( ulong i=0; i < self->stash_len; i++ ) {
    3030           0 :       fd_gossip_deprecated_epoch_incomplete_slots_new( self->stash + i );
    3031           0 :       fd_gossip_deprecated_epoch_incomplete_slots_generate( self->stash + i, alloc_mem, rng );
    3032           0 :     }
    3033           0 :   } else {
    3034           0 :     self->stash = NULL;
    3035           0 :   }
    3036           0 :   self->wallclock = fd_rng_ulong( rng );
    3037           0 :   return mem;
    3038           0 : }
    3039             : 
    3040           0 : void *fd_gossip_slot_hashes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3041           0 :   fd_gossip_slot_hashes_t *self = (fd_gossip_slot_hashes_t *) mem;
    3042           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_slot_hashes_t);
    3043           0 :   fd_gossip_slot_hashes_new(mem);
    3044           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3045           0 :   self->hashes_len = fd_rng_ulong( rng ) % 8;
    3046           0 :   if( self->hashes_len ) {
    3047           0 :     self->hashes = (fd_slot_hash_t *) *alloc_mem;
    3048           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_hash_t)*self->hashes_len;
    3049           0 :     for( ulong i=0; i < self->hashes_len; i++ ) {
    3050           0 :       fd_slot_hash_new( self->hashes + i );
    3051           0 :       fd_slot_hash_generate( self->hashes + i, alloc_mem, rng );
    3052           0 :     }
    3053           0 :   } else {
    3054           0 :     self->hashes = NULL;
    3055           0 :   }
    3056           0 :   self->wallclock = fd_rng_ulong( rng );
    3057           0 :   return mem;
    3058           0 : }
    3059             : 
    3060           0 : void *fd_gossip_slots_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3061           0 :   fd_gossip_slots_t *self = (fd_gossip_slots_t *) mem;
    3062           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_slots_t);
    3063           0 :   fd_gossip_slots_new(mem);
    3064           0 :   self->first_slot = fd_rng_ulong( rng );
    3065           0 :   self->num = fd_rng_ulong( rng );
    3066           0 :   {
    3067           0 :     self->has_slots = fd_rng_uchar( rng ) % 2;
    3068           0 :     if( self->has_slots ) {
    3069           0 :       self->slots_bitvec_len = fd_rng_ulong( rng ) % 8;
    3070           0 :       if( self->slots_bitvec_len ) {
    3071           0 :         self->slots_bitvec = (uchar *) *alloc_mem;
    3072           0 :         *alloc_mem = (uchar *) *alloc_mem + self->slots_bitvec_len;
    3073           0 :         for( ulong i=0; i < self->slots_bitvec_len; ++i) { self->slots_bitvec[i] = fd_rng_uchar( rng ) % 0x80; }
    3074           0 :       } else {
    3075           0 :         self->slots_bitvec = NULL;
    3076           0 :       }
    3077           0 :       self->slots_len = self->slots_bitvec_len;
    3078           0 :     } else {
    3079           0 :       self->slots_len = 0UL;
    3080           0 :     }
    3081           0 :   }
    3082           0 :   return mem;
    3083           0 : }
    3084             : 
    3085           0 : void *fd_gossip_flate2_slots_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3086           0 :   fd_gossip_flate2_slots_t *self = (fd_gossip_flate2_slots_t *) mem;
    3087           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_flate2_slots_t);
    3088           0 :   fd_gossip_flate2_slots_new(mem);
    3089           0 :   self->first_slot = fd_rng_ulong( rng );
    3090           0 :   self->num = fd_rng_ulong( rng );
    3091           0 :   self->compressed_len = fd_rng_ulong( rng ) % 8;
    3092           0 :   if( self->compressed_len ) {
    3093           0 :     self->compressed = (uchar *) *alloc_mem;
    3094           0 :     *alloc_mem = (uchar *) *alloc_mem + self->compressed_len;
    3095           0 :     for( ulong i=0; i < self->compressed_len; ++i) { self->compressed[i] = fd_rng_uchar( rng ) % 0x80; }
    3096           0 :   } else {
    3097           0 :     self->compressed = NULL;
    3098           0 :   }
    3099           0 :   return mem;
    3100           0 : }
    3101             : 
    3102           0 : void fd_gossip_slots_enum_inner_generate( fd_gossip_slots_enum_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3103           0 :   switch (discriminant) {
    3104           0 :   case 0: {
    3105           0 :     fd_gossip_flate2_slots_generate( &self->flate2, alloc_mem, rng );
    3106           0 :     break;
    3107           0 :   }
    3108           0 :   case 1: {
    3109           0 :     fd_gossip_slots_generate( &self->uncompressed, alloc_mem, rng );
    3110           0 :     break;
    3111           0 :   }
    3112           0 :   }
    3113           0 : }
    3114           0 : void *fd_gossip_slots_enum_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3115           0 :   fd_gossip_slots_enum_t *self = (fd_gossip_slots_enum_t *) mem;
    3116           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_slots_enum_t);
    3117           0 :   fd_gossip_slots_enum_new(mem);
    3118           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    3119           0 :   fd_gossip_slots_enum_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3120           0 :   return mem;
    3121           0 : }
    3122             : 
    3123           0 : void *fd_gossip_epoch_slots_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3124           0 :   fd_gossip_epoch_slots_t *self = (fd_gossip_epoch_slots_t *) mem;
    3125           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_epoch_slots_t);
    3126           0 :   fd_gossip_epoch_slots_new(mem);
    3127           0 :   self->u8 = fd_rng_uchar( rng );
    3128           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3129           0 :   self->slots_len = fd_rng_ulong( rng ) % 8;
    3130           0 :   if( self->slots_len ) {
    3131           0 :     self->slots = (fd_gossip_slots_enum_t *) *alloc_mem;
    3132           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_slots_enum_t)*self->slots_len;
    3133           0 :     for( ulong i=0; i < self->slots_len; i++ ) {
    3134           0 :       fd_gossip_slots_enum_new( self->slots + i );
    3135           0 :       fd_gossip_slots_enum_generate( self->slots + i, alloc_mem, rng );
    3136           0 :     }
    3137           0 :   } else {
    3138           0 :     self->slots = NULL;
    3139           0 :   }
    3140           0 :   self->wallclock = fd_rng_ulong( rng );
    3141           0 :   return mem;
    3142           0 : }
    3143             : 
    3144           0 : void *fd_gossip_version_v1_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3145           0 :   fd_gossip_version_v1_t *self = (fd_gossip_version_v1_t *) mem;
    3146           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_version_v1_t);
    3147           0 :   fd_gossip_version_v1_new(mem);
    3148           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3149           0 :   self->wallclock = fd_rng_ulong( rng );
    3150           0 :   self->major = fd_rng_ushort( rng );
    3151           0 :   self->minor = fd_rng_ushort( rng );
    3152           0 :   self->patch = fd_rng_ushort( rng );
    3153           0 :   {
    3154           0 :     self->has_commit = fd_rng_uchar( rng ) % 2;
    3155           0 :     if( self->has_commit ) {
    3156           0 :       LLVMFuzzerMutate( (uchar *)&(self->commit), sizeof(uint), sizeof(uint) );
    3157           0 :     }
    3158           0 :   }
    3159           0 :   return mem;
    3160           0 : }
    3161             : 
    3162           0 : void *fd_gossip_version_v2_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3163           0 :   fd_gossip_version_v2_t *self = (fd_gossip_version_v2_t *) mem;
    3164           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_version_v2_t);
    3165           0 :   fd_gossip_version_v2_new(mem);
    3166           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3167           0 :   self->wallclock = fd_rng_ulong( rng );
    3168           0 :   self->major = fd_rng_ushort( rng );
    3169           0 :   self->minor = fd_rng_ushort( rng );
    3170           0 :   self->patch = fd_rng_ushort( rng );
    3171           0 :   {
    3172           0 :     self->has_commit = fd_rng_uchar( rng ) % 2;
    3173           0 :     if( self->has_commit ) {
    3174           0 :       LLVMFuzzerMutate( (uchar *)&(self->commit), sizeof(uint), sizeof(uint) );
    3175           0 :     }
    3176           0 :   }
    3177           0 :   self->feature_set = fd_rng_uint( rng );
    3178           0 :   return mem;
    3179           0 : }
    3180             : 
    3181           0 : void *fd_gossip_version_v3_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3182           0 :   fd_gossip_version_v3_t *self = (fd_gossip_version_v3_t *) mem;
    3183           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_version_v3_t);
    3184           0 :   fd_gossip_version_v3_new(mem);
    3185           0 :   self->major = fd_rng_ushort( rng );
    3186           0 :   self->minor = fd_rng_ushort( rng );
    3187           0 :   self->patch = fd_rng_ushort( rng );
    3188           0 :   self->commit = fd_rng_uint( rng );
    3189           0 :   self->feature_set = fd_rng_uint( rng );
    3190           0 :   self->client = fd_rng_ushort( rng );
    3191           0 :   return mem;
    3192           0 : }
    3193             : 
    3194           0 : void *fd_gossip_node_instance_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3195           0 :   fd_gossip_node_instance_t *self = (fd_gossip_node_instance_t *) mem;
    3196           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_node_instance_t);
    3197           0 :   fd_gossip_node_instance_new(mem);
    3198           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3199           0 :   self->wallclock = fd_rng_ulong( rng );
    3200           0 :   self->timestamp = fd_rng_ulong( rng );
    3201           0 :   self->token = fd_rng_ulong( rng );
    3202           0 :   return mem;
    3203           0 : }
    3204             : 
    3205           0 : void *fd_gossip_duplicate_shred_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3206           0 :   fd_gossip_duplicate_shred_t *self = (fd_gossip_duplicate_shred_t *) mem;
    3207           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_duplicate_shred_t);
    3208           0 :   fd_gossip_duplicate_shred_new(mem);
    3209           0 :   self->duplicate_shred_index = fd_rng_ushort( rng );
    3210           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3211           0 :   self->wallclock = fd_rng_ulong( rng );
    3212           0 :   self->slot = fd_rng_ulong( rng );
    3213           0 :   self->_unused = fd_rng_uint( rng );
    3214           0 :   self->_unused_shred_type = fd_rng_uchar( rng );
    3215           0 :   self->num_chunks = fd_rng_uchar( rng );
    3216           0 :   self->chunk_index = fd_rng_uchar( rng );
    3217           0 :   self->chunk_len = fd_rng_ulong( rng ) % 8;
    3218           0 :   if( self->chunk_len ) {
    3219           0 :     self->chunk = (uchar *) *alloc_mem;
    3220           0 :     *alloc_mem = (uchar *) *alloc_mem + self->chunk_len;
    3221           0 :     for( ulong i=0; i < self->chunk_len; ++i) { self->chunk[i] = fd_rng_uchar( rng ) % 0x80; }
    3222           0 :   } else {
    3223           0 :     self->chunk = NULL;
    3224           0 :   }
    3225           0 :   return mem;
    3226           0 : }
    3227             : 
    3228           0 : void *fd_gossip_incremental_snapshot_hashes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3229           0 :   fd_gossip_incremental_snapshot_hashes_t *self = (fd_gossip_incremental_snapshot_hashes_t *) mem;
    3230           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_incremental_snapshot_hashes_t);
    3231           0 :   fd_gossip_incremental_snapshot_hashes_new(mem);
    3232           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3233           0 :   fd_slot_hash_generate( &self->base_hash, alloc_mem, rng );
    3234           0 :   self->hashes_len = fd_rng_ulong( rng ) % 8;
    3235           0 :   if( self->hashes_len ) {
    3236           0 :     self->hashes = (fd_slot_hash_t *) *alloc_mem;
    3237           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_hash_t)*self->hashes_len;
    3238           0 :     for( ulong i=0; i < self->hashes_len; i++ ) {
    3239           0 :       fd_slot_hash_new( self->hashes + i );
    3240           0 :       fd_slot_hash_generate( self->hashes + i, alloc_mem, rng );
    3241           0 :     }
    3242           0 :   } else {
    3243           0 :     self->hashes = NULL;
    3244           0 :   }
    3245           0 :   self->wallclock = fd_rng_ulong( rng );
    3246           0 :   return mem;
    3247           0 : }
    3248             : 
    3249           0 : void *fd_gossip_socket_entry_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3250           0 :   fd_gossip_socket_entry_t *self = (fd_gossip_socket_entry_t *) mem;
    3251           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_entry_t);
    3252           0 :   fd_gossip_socket_entry_new(mem);
    3253           0 :   self->key = fd_rng_uchar( rng );
    3254           0 :   self->index = fd_rng_uchar( rng );
    3255           0 :   self->offset = fd_rng_ushort( rng );
    3256           0 :   return mem;
    3257           0 : }
    3258             : 
    3259           0 : void *fd_gossip_contact_info_v2_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3260           0 :   fd_gossip_contact_info_v2_t *self = (fd_gossip_contact_info_v2_t *) mem;
    3261           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_contact_info_v2_t);
    3262           0 :   fd_gossip_contact_info_v2_new(mem);
    3263           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3264           0 :   self->wallclock = fd_rng_ulong( rng );
    3265           0 :   self->outset = fd_rng_ulong( rng );
    3266           0 :   self->shred_version = fd_rng_ushort( rng );
    3267           0 :   fd_gossip_version_v3_generate( &self->version, alloc_mem, rng );
    3268           0 :   self->addrs_len = fd_rng_ulong( rng ) % 8;
    3269           0 :   if( self->addrs_len ) {
    3270           0 :     self->addrs = (fd_gossip_ip_addr_t *) *alloc_mem;
    3271           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_ip_addr_t)*self->addrs_len;
    3272           0 :     for( ulong i=0; i < self->addrs_len; i++ ) {
    3273           0 :       fd_gossip_ip_addr_new( self->addrs + i );
    3274           0 :       fd_gossip_ip_addr_generate( self->addrs + i, alloc_mem, rng );
    3275           0 :     }
    3276           0 :   } else {
    3277           0 :     self->addrs = NULL;
    3278           0 :   }
    3279           0 :   self->sockets_len = fd_rng_ulong( rng ) % 8;
    3280           0 :   if( self->sockets_len ) {
    3281           0 :     self->sockets = (fd_gossip_socket_entry_t *) *alloc_mem;
    3282           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_socket_entry_t)*self->sockets_len;
    3283           0 :     for( ulong i=0; i < self->sockets_len; i++ ) {
    3284           0 :       fd_gossip_socket_entry_new( self->sockets + i );
    3285           0 :       fd_gossip_socket_entry_generate( self->sockets + i, alloc_mem, rng );
    3286           0 :     }
    3287           0 :   } else {
    3288           0 :     self->sockets = NULL;
    3289           0 :   }
    3290           0 :   self->extensions_len = fd_rng_ulong( rng ) % 8;
    3291           0 :   if( self->extensions_len ) {
    3292           0 :     self->extensions = (uint *) *alloc_mem;
    3293           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(uint)*self->extensions_len;
    3294           0 :     LLVMFuzzerMutate( (uchar *) self->extensions, sizeof(uint)*self->extensions_len, sizeof(uint)*self->extensions_len );
    3295           0 :   } else {
    3296           0 :     self->extensions = NULL;
    3297           0 :   }
    3298           0 :   return mem;
    3299           0 : }
    3300             : 
    3301           0 : void *fd_restart_run_length_encoding_inner_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3302           0 :   fd_restart_run_length_encoding_inner_t *self = (fd_restart_run_length_encoding_inner_t *) mem;
    3303           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_restart_run_length_encoding_inner_t);
    3304           0 :   fd_restart_run_length_encoding_inner_new(mem);
    3305           0 :   self->bits = fd_rng_ushort( rng );
    3306           0 :   return mem;
    3307           0 : }
    3308             : 
    3309           0 : void *fd_restart_run_length_encoding_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3310           0 :   fd_restart_run_length_encoding_t *self = (fd_restart_run_length_encoding_t *) mem;
    3311           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_restart_run_length_encoding_t);
    3312           0 :   fd_restart_run_length_encoding_new(mem);
    3313           0 :   self->offsets_len = fd_rng_ulong( rng ) % 8;
    3314           0 :   if( self->offsets_len ) {
    3315           0 :     self->offsets = (fd_restart_run_length_encoding_inner_t *) *alloc_mem;
    3316           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_restart_run_length_encoding_inner_t)*self->offsets_len;
    3317           0 :     for( ulong i=0; i < self->offsets_len; i++ ) {
    3318           0 :       fd_restart_run_length_encoding_inner_new( self->offsets + i );
    3319           0 :       fd_restart_run_length_encoding_inner_generate( self->offsets + i, alloc_mem, rng );
    3320           0 :     }
    3321           0 :   } else {
    3322           0 :     self->offsets = NULL;
    3323           0 :   }
    3324           0 :   return mem;
    3325           0 : }
    3326             : 
    3327           0 : void *fd_restart_raw_offsets_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3328           0 :   fd_restart_raw_offsets_t *self = (fd_restart_raw_offsets_t *) mem;
    3329           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_restart_raw_offsets_t);
    3330           0 :   fd_restart_raw_offsets_new(mem);
    3331           0 :   {
    3332           0 :     self->has_offsets = fd_rng_uchar( rng ) % 2;
    3333           0 :     if( self->has_offsets ) {
    3334           0 :       self->offsets_bitvec_len = fd_rng_ulong( rng ) % 8;
    3335           0 :       if( self->offsets_bitvec_len ) {
    3336           0 :         self->offsets_bitvec = (uchar *) *alloc_mem;
    3337           0 :         *alloc_mem = (uchar *) *alloc_mem + self->offsets_bitvec_len;
    3338           0 :         for( ulong i=0; i < self->offsets_bitvec_len; ++i) { self->offsets_bitvec[i] = fd_rng_uchar( rng ) % 0x80; }
    3339           0 :       } else {
    3340           0 :         self->offsets_bitvec = NULL;
    3341           0 :       }
    3342           0 :       self->offsets_len = self->offsets_bitvec_len;
    3343           0 :     } else {
    3344           0 :       self->offsets_len = 0UL;
    3345           0 :     }
    3346           0 :   }
    3347           0 :   return mem;
    3348           0 : }
    3349             : 
    3350           0 : void fd_restart_slots_offsets_inner_generate( fd_restart_slots_offsets_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3351           0 :   switch (discriminant) {
    3352           0 :   case 0: {
    3353           0 :     fd_restart_run_length_encoding_generate( &self->run_length_encoding, alloc_mem, rng );
    3354           0 :     break;
    3355           0 :   }
    3356           0 :   case 1: {
    3357           0 :     fd_restart_raw_offsets_generate( &self->raw_offsets, alloc_mem, rng );
    3358           0 :     break;
    3359           0 :   }
    3360           0 :   }
    3361           0 : }
    3362           0 : void *fd_restart_slots_offsets_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3363           0 :   fd_restart_slots_offsets_t *self = (fd_restart_slots_offsets_t *) mem;
    3364           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_restart_slots_offsets_t);
    3365           0 :   fd_restart_slots_offsets_new(mem);
    3366           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    3367           0 :   fd_restart_slots_offsets_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3368           0 :   return mem;
    3369           0 : }
    3370             : 
    3371           0 : void *fd_gossip_restart_last_voted_fork_slots_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3372           0 :   fd_gossip_restart_last_voted_fork_slots_t *self = (fd_gossip_restart_last_voted_fork_slots_t *) mem;
    3373           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_restart_last_voted_fork_slots_t);
    3374           0 :   fd_gossip_restart_last_voted_fork_slots_new(mem);
    3375           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3376           0 :   self->wallclock = fd_rng_ulong( rng );
    3377           0 :   fd_restart_slots_offsets_generate( &self->offsets, alloc_mem, rng );
    3378           0 :   self->last_voted_slot = fd_rng_ulong( rng );
    3379           0 :   fd_hash_generate( &self->last_voted_hash, alloc_mem, rng );
    3380           0 :   self->shred_version = fd_rng_ushort( rng );
    3381           0 :   return mem;
    3382           0 : }
    3383             : 
    3384           0 : void *fd_gossip_restart_heaviest_fork_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3385           0 :   fd_gossip_restart_heaviest_fork_t *self = (fd_gossip_restart_heaviest_fork_t *) mem;
    3386           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_restart_heaviest_fork_t);
    3387           0 :   fd_gossip_restart_heaviest_fork_new(mem);
    3388           0 :   fd_pubkey_generate( &self->from, alloc_mem, rng );
    3389           0 :   self->wallclock = fd_rng_ulong( rng );
    3390           0 :   self->last_slot = fd_rng_ulong( rng );
    3391           0 :   fd_hash_generate( &self->last_slot_hash, alloc_mem, rng );
    3392           0 :   self->observed_stake = fd_rng_ulong( rng );
    3393           0 :   self->shred_version = fd_rng_ushort( rng );
    3394           0 :   return mem;
    3395           0 : }
    3396             : 
    3397           0 : void fd_crds_data_inner_generate( fd_crds_data_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3398           0 :   switch (discriminant) {
    3399           0 :   case 0: {
    3400           0 :     fd_gossip_contact_info_v1_generate( &self->contact_info_v1, alloc_mem, rng );
    3401           0 :     break;
    3402           0 :   }
    3403           0 :   case 1: {
    3404           0 :     fd_gossip_vote_generate( &self->vote, alloc_mem, rng );
    3405           0 :     break;
    3406           0 :   }
    3407           0 :   case 2: {
    3408           0 :     fd_gossip_lowest_slot_generate( &self->lowest_slot, alloc_mem, rng );
    3409           0 :     break;
    3410           0 :   }
    3411           0 :   case 3: {
    3412           0 :     fd_gossip_slot_hashes_generate( &self->snapshot_hashes, alloc_mem, rng );
    3413           0 :     break;
    3414           0 :   }
    3415           0 :   case 4: {
    3416           0 :     fd_gossip_slot_hashes_generate( &self->accounts_hashes, alloc_mem, rng );
    3417           0 :     break;
    3418           0 :   }
    3419           0 :   case 5: {
    3420           0 :     fd_gossip_epoch_slots_generate( &self->epoch_slots, alloc_mem, rng );
    3421           0 :     break;
    3422           0 :   }
    3423           0 :   case 6: {
    3424           0 :     fd_gossip_version_v1_generate( &self->version_v1, alloc_mem, rng );
    3425           0 :     break;
    3426           0 :   }
    3427           0 :   case 7: {
    3428           0 :     fd_gossip_version_v2_generate( &self->version_v2, alloc_mem, rng );
    3429           0 :     break;
    3430           0 :   }
    3431           0 :   case 8: {
    3432           0 :     fd_gossip_node_instance_generate( &self->node_instance, alloc_mem, rng );
    3433           0 :     break;
    3434           0 :   }
    3435           0 :   case 9: {
    3436           0 :     fd_gossip_duplicate_shred_generate( &self->duplicate_shred, alloc_mem, rng );
    3437           0 :     break;
    3438           0 :   }
    3439           0 :   case 10: {
    3440           0 :     fd_gossip_incremental_snapshot_hashes_generate( &self->incremental_snapshot_hashes, alloc_mem, rng );
    3441           0 :     break;
    3442           0 :   }
    3443           0 :   case 11: {
    3444           0 :     fd_gossip_contact_info_v2_generate( &self->contact_info_v2, alloc_mem, rng );
    3445           0 :     break;
    3446           0 :   }
    3447           0 :   case 12: {
    3448           0 :     fd_gossip_restart_last_voted_fork_slots_generate( &self->restart_last_voted_fork_slots, alloc_mem, rng );
    3449           0 :     break;
    3450           0 :   }
    3451           0 :   case 13: {
    3452           0 :     fd_gossip_restart_heaviest_fork_generate( &self->restart_heaviest_fork, alloc_mem, rng );
    3453           0 :     break;
    3454           0 :   }
    3455           0 :   }
    3456           0 : }
    3457           0 : void *fd_crds_data_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3458           0 :   fd_crds_data_t *self = (fd_crds_data_t *) mem;
    3459           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_data_t);
    3460           0 :   fd_crds_data_new(mem);
    3461           0 :   self->discriminant = fd_rng_uint( rng ) % 14;
    3462           0 :   fd_crds_data_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3463           0 :   return mem;
    3464           0 : }
    3465             : 
    3466           0 : void *fd_crds_bloom_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3467           0 :   fd_crds_bloom_t *self = (fd_crds_bloom_t *) mem;
    3468           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_bloom_t);
    3469           0 :   fd_crds_bloom_new(mem);
    3470           0 :   self->keys_len = fd_rng_ulong( rng ) % 8;
    3471           0 :   if( self->keys_len ) {
    3472           0 :     self->keys = (ulong *) *alloc_mem;
    3473           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->keys_len;
    3474           0 :     LLVMFuzzerMutate( (uchar *) self->keys, sizeof(ulong)*self->keys_len, sizeof(ulong)*self->keys_len );
    3475           0 :   } else {
    3476           0 :     self->keys = NULL;
    3477           0 :   }
    3478           0 :   {
    3479           0 :     self->has_bits = fd_rng_uchar( rng ) % 2;
    3480           0 :     if( self->has_bits ) {
    3481           0 :       self->bits_bitvec_len = fd_rng_ulong( rng ) % 8;
    3482           0 :       if( self->bits_bitvec_len ) {
    3483           0 :         self->bits_bitvec = (ulong *) *alloc_mem;
    3484           0 :         *alloc_mem = (uchar *) *alloc_mem + sizeof(ulong)*self->bits_bitvec_len;
    3485           0 :         LLVMFuzzerMutate( (uchar *) self->bits_bitvec, sizeof(ulong)*self->bits_bitvec_len, sizeof(ulong)*self->bits_bitvec_len );
    3486           0 :       } else {
    3487           0 :         self->bits_bitvec = NULL;
    3488           0 :       }
    3489           0 :       self->bits_len = self->bits_bitvec_len;
    3490           0 :     } else {
    3491           0 :       self->bits_len = 0UL;
    3492           0 :     }
    3493           0 :   }
    3494           0 :   self->num_bits_set = fd_rng_ulong( rng );
    3495           0 :   return mem;
    3496           0 : }
    3497             : 
    3498           0 : void *fd_crds_filter_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3499           0 :   fd_crds_filter_t *self = (fd_crds_filter_t *) mem;
    3500           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_filter_t);
    3501           0 :   fd_crds_filter_new(mem);
    3502           0 :   fd_crds_bloom_generate( &self->filter, alloc_mem, rng );
    3503           0 :   self->mask = fd_rng_ulong( rng );
    3504           0 :   self->mask_bits = fd_rng_uint( rng );
    3505           0 :   return mem;
    3506           0 : }
    3507             : 
    3508           0 : void *fd_crds_value_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3509           0 :   fd_crds_value_t *self = (fd_crds_value_t *) mem;
    3510           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_value_t);
    3511           0 :   fd_crds_value_new(mem);
    3512           0 :   fd_signature_generate( &self->signature, alloc_mem, rng );
    3513           0 :   fd_crds_data_generate( &self->data, alloc_mem, rng );
    3514           0 :   return mem;
    3515           0 : }
    3516             : 
    3517           0 : void *fd_gossip_pull_req_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3518           0 :   fd_gossip_pull_req_t *self = (fd_gossip_pull_req_t *) mem;
    3519           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_pull_req_t);
    3520           0 :   fd_gossip_pull_req_new(mem);
    3521           0 :   fd_crds_filter_generate( &self->filter, alloc_mem, rng );
    3522           0 :   fd_crds_value_generate( &self->value, alloc_mem, rng );
    3523           0 :   return mem;
    3524           0 : }
    3525             : 
    3526           0 : void *fd_gossip_pull_resp_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3527           0 :   fd_gossip_pull_resp_t *self = (fd_gossip_pull_resp_t *) mem;
    3528           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_pull_resp_t);
    3529           0 :   fd_gossip_pull_resp_new(mem);
    3530           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    3531           0 :   self->crds_len = fd_rng_ulong( rng ) % 8;
    3532           0 :   if( self->crds_len ) {
    3533           0 :     self->crds = (fd_crds_value_t *) *alloc_mem;
    3534           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_value_t)*self->crds_len;
    3535           0 :     for( ulong i=0; i < self->crds_len; i++ ) {
    3536           0 :       fd_crds_value_new( self->crds + i );
    3537           0 :       fd_crds_value_generate( self->crds + i, alloc_mem, rng );
    3538           0 :     }
    3539           0 :   } else {
    3540           0 :     self->crds = NULL;
    3541           0 :   }
    3542           0 :   return mem;
    3543           0 : }
    3544             : 
    3545           0 : void *fd_gossip_push_msg_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3546           0 :   fd_gossip_push_msg_t *self = (fd_gossip_push_msg_t *) mem;
    3547           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_push_msg_t);
    3548           0 :   fd_gossip_push_msg_new(mem);
    3549           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    3550           0 :   self->crds_len = fd_rng_ulong( rng ) % 8;
    3551           0 :   if( self->crds_len ) {
    3552           0 :     self->crds = (fd_crds_value_t *) *alloc_mem;
    3553           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_crds_value_t)*self->crds_len;
    3554           0 :     for( ulong i=0; i < self->crds_len; i++ ) {
    3555           0 :       fd_crds_value_new( self->crds + i );
    3556           0 :       fd_crds_value_generate( self->crds + i, alloc_mem, rng );
    3557           0 :     }
    3558           0 :   } else {
    3559           0 :     self->crds = NULL;
    3560           0 :   }
    3561           0 :   return mem;
    3562           0 : }
    3563             : 
    3564           0 : void *fd_gossip_prune_msg_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3565           0 :   fd_gossip_prune_msg_t *self = (fd_gossip_prune_msg_t *) mem;
    3566           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_prune_msg_t);
    3567           0 :   fd_gossip_prune_msg_new(mem);
    3568           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    3569           0 :   fd_gossip_prune_data_generate( &self->data, alloc_mem, rng );
    3570           0 :   return mem;
    3571           0 : }
    3572             : 
    3573           0 : void fd_gossip_msg_inner_generate( fd_gossip_msg_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3574           0 :   switch (discriminant) {
    3575           0 :   case 0: {
    3576           0 :     fd_gossip_pull_req_generate( &self->pull_req, alloc_mem, rng );
    3577           0 :     break;
    3578           0 :   }
    3579           0 :   case 1: {
    3580           0 :     fd_gossip_pull_resp_generate( &self->pull_resp, alloc_mem, rng );
    3581           0 :     break;
    3582           0 :   }
    3583           0 :   case 2: {
    3584           0 :     fd_gossip_push_msg_generate( &self->push_msg, alloc_mem, rng );
    3585           0 :     break;
    3586           0 :   }
    3587           0 :   case 3: {
    3588           0 :     fd_gossip_prune_msg_generate( &self->prune_msg, alloc_mem, rng );
    3589           0 :     break;
    3590           0 :   }
    3591           0 :   case 4: {
    3592           0 :     fd_gossip_ping_generate( &self->ping, alloc_mem, rng );
    3593           0 :     break;
    3594           0 :   }
    3595           0 :   case 5: {
    3596           0 :     fd_gossip_ping_generate( &self->pong, alloc_mem, rng );
    3597           0 :     break;
    3598           0 :   }
    3599           0 :   }
    3600           0 : }
    3601           0 : void *fd_gossip_msg_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3602           0 :   fd_gossip_msg_t *self = (fd_gossip_msg_t *) mem;
    3603           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_gossip_msg_t);
    3604           0 :   fd_gossip_msg_new(mem);
    3605           0 :   self->discriminant = fd_rng_uint( rng ) % 6;
    3606           0 :   while( self->discriminant == 0 || self->discriminant == 1 || self->discriminant == 2 ) { self->discriminant = fd_rng_uint( rng ) % 6; }
    3607           0 :   fd_gossip_msg_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3608           0 :   return mem;
    3609           0 : }
    3610             : 
    3611           0 : void *fd_addrlut_create_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3612           0 :   fd_addrlut_create_t *self = (fd_addrlut_create_t *) mem;
    3613           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_addrlut_create_t);
    3614           0 :   fd_addrlut_create_new(mem);
    3615           0 :   self->recent_slot = fd_rng_ulong( rng );
    3616           0 :   self->bump_seed = fd_rng_uchar( rng );
    3617           0 :   return mem;
    3618           0 : }
    3619             : 
    3620           0 : void *fd_addrlut_extend_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3621           0 :   fd_addrlut_extend_t *self = (fd_addrlut_extend_t *) mem;
    3622           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_addrlut_extend_t);
    3623           0 :   fd_addrlut_extend_new(mem);
    3624           0 :   self->new_addrs_len = fd_rng_ulong( rng ) % 8;
    3625           0 :   if( self->new_addrs_len ) {
    3626           0 :     self->new_addrs = (fd_pubkey_t *) *alloc_mem;
    3627           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_t)*self->new_addrs_len;
    3628           0 :     for( ulong i=0; i < self->new_addrs_len; i++ ) {
    3629           0 :       fd_pubkey_new( self->new_addrs + i );
    3630           0 :       fd_pubkey_generate( self->new_addrs + i, alloc_mem, rng );
    3631           0 :     }
    3632           0 :   } else {
    3633           0 :     self->new_addrs = NULL;
    3634           0 :   }
    3635           0 :   return mem;
    3636           0 : }
    3637             : 
    3638           0 : void fd_addrlut_instruction_inner_generate( fd_addrlut_instruction_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3639           0 :   switch (discriminant) {
    3640           0 :   case 0: {
    3641           0 :     fd_addrlut_create_generate( &self->create_lut, alloc_mem, rng );
    3642           0 :     break;
    3643           0 :   }
    3644           0 :   case 2: {
    3645           0 :     fd_addrlut_extend_generate( &self->extend_lut, alloc_mem, rng );
    3646           0 :     break;
    3647           0 :   }
    3648           0 :   }
    3649           0 : }
    3650           0 : void *fd_addrlut_instruction_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3651           0 :   fd_addrlut_instruction_t *self = (fd_addrlut_instruction_t *) mem;
    3652           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_addrlut_instruction_t);
    3653           0 :   fd_addrlut_instruction_new(mem);
    3654           0 :   self->discriminant = fd_rng_uint( rng ) % 5;
    3655           0 :   fd_addrlut_instruction_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3656           0 :   return mem;
    3657           0 : }
    3658             : 
    3659           0 : void *fd_repair_request_header_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3660           0 :   fd_repair_request_header_t *self = (fd_repair_request_header_t *) mem;
    3661           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_request_header_t);
    3662           0 :   fd_repair_request_header_new(mem);
    3663           0 :   fd_signature_generate( &self->signature, alloc_mem, rng );
    3664           0 :   fd_pubkey_generate( &self->sender, alloc_mem, rng );
    3665           0 :   fd_pubkey_generate( &self->recipient, alloc_mem, rng );
    3666           0 :   self->timestamp = fd_rng_ulong( rng );
    3667           0 :   self->nonce = fd_rng_uint( rng );
    3668           0 :   return mem;
    3669           0 : }
    3670             : 
    3671           0 : void *fd_repair_window_index_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3672           0 :   fd_repair_window_index_t *self = (fd_repair_window_index_t *) mem;
    3673           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_window_index_t);
    3674           0 :   fd_repair_window_index_new(mem);
    3675           0 :   fd_repair_request_header_generate( &self->header, alloc_mem, rng );
    3676           0 :   self->slot = fd_rng_ulong( rng );
    3677           0 :   self->shred_index = fd_rng_ulong( rng );
    3678           0 :   return mem;
    3679           0 : }
    3680             : 
    3681           0 : void *fd_repair_highest_window_index_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3682           0 :   fd_repair_highest_window_index_t *self = (fd_repair_highest_window_index_t *) mem;
    3683           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_highest_window_index_t);
    3684           0 :   fd_repair_highest_window_index_new(mem);
    3685           0 :   fd_repair_request_header_generate( &self->header, alloc_mem, rng );
    3686           0 :   self->slot = fd_rng_ulong( rng );
    3687           0 :   self->shred_index = fd_rng_ulong( rng );
    3688           0 :   return mem;
    3689           0 : }
    3690             : 
    3691           0 : void *fd_repair_orphan_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3692           0 :   fd_repair_orphan_t *self = (fd_repair_orphan_t *) mem;
    3693           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_orphan_t);
    3694           0 :   fd_repair_orphan_new(mem);
    3695           0 :   fd_repair_request_header_generate( &self->header, alloc_mem, rng );
    3696           0 :   self->slot = fd_rng_ulong( rng );
    3697           0 :   return mem;
    3698           0 : }
    3699             : 
    3700           0 : void *fd_repair_ancestor_hashes_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3701           0 :   fd_repair_ancestor_hashes_t *self = (fd_repair_ancestor_hashes_t *) mem;
    3702           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_ancestor_hashes_t);
    3703           0 :   fd_repair_ancestor_hashes_new(mem);
    3704           0 :   fd_repair_request_header_generate( &self->header, alloc_mem, rng );
    3705           0 :   self->slot = fd_rng_ulong( rng );
    3706           0 :   return mem;
    3707           0 : }
    3708             : 
    3709           0 : void fd_repair_protocol_inner_generate( fd_repair_protocol_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3710           0 :   switch (discriminant) {
    3711           0 :   case 7: {
    3712           0 :     fd_gossip_ping_generate( &self->pong, alloc_mem, rng );
    3713           0 :     break;
    3714           0 :   }
    3715           0 :   case 8: {
    3716           0 :     fd_repair_window_index_generate( &self->window_index, alloc_mem, rng );
    3717           0 :     break;
    3718           0 :   }
    3719           0 :   case 9: {
    3720           0 :     fd_repair_highest_window_index_generate( &self->highest_window_index, alloc_mem, rng );
    3721           0 :     break;
    3722           0 :   }
    3723           0 :   case 10: {
    3724           0 :     fd_repair_orphan_generate( &self->orphan, alloc_mem, rng );
    3725           0 :     break;
    3726           0 :   }
    3727           0 :   case 11: {
    3728           0 :     fd_repair_ancestor_hashes_generate( &self->ancestor_hashes, alloc_mem, rng );
    3729           0 :     break;
    3730           0 :   }
    3731           0 :   }
    3732           0 : }
    3733           0 : void *fd_repair_protocol_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3734           0 :   fd_repair_protocol_t *self = (fd_repair_protocol_t *) mem;
    3735           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_protocol_t);
    3736           0 :   fd_repair_protocol_new(mem);
    3737           0 :   self->discriminant = fd_rng_uint( rng ) % 12;
    3738           0 :   fd_repair_protocol_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3739           0 :   return mem;
    3740           0 : }
    3741             : 
    3742           0 : void fd_repair_response_inner_generate( fd_repair_response_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3743           0 :   switch (discriminant) {
    3744           0 :   case 0: {
    3745           0 :     fd_gossip_ping_generate( &self->ping, alloc_mem, rng );
    3746           0 :     break;
    3747           0 :   }
    3748           0 :   }
    3749           0 : }
    3750           0 : void *fd_repair_response_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3751           0 :   fd_repair_response_t *self = (fd_repair_response_t *) mem;
    3752           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_repair_response_t);
    3753           0 :   fd_repair_response_new(mem);
    3754           0 :   self->discriminant = fd_rng_uint( rng ) % 1;
    3755           0 :   fd_repair_response_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3756           0 :   return mem;
    3757           0 : }
    3758             : 
    3759           0 : void fd_instr_error_enum_inner_generate( fd_instr_error_enum_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3760           0 :   switch (discriminant) {
    3761           0 :   case 25: {
    3762           0 :     self->custom = fd_rng_uint( rng );
    3763           0 :     break;
    3764           0 :   }
    3765           0 :   case 44: {
    3766           0 :     ulong slen = fd_rng_ulong( rng ) % 256;
    3767           0 :     char *buffer = (char *) *alloc_mem;
    3768           0 :     *alloc_mem = (uchar *) *alloc_mem + slen;
    3769           0 :     self->borsh_io_error = buffer;
    3770           0 :     LLVMFuzzerMutate( (uchar *)self->borsh_io_error, slen, slen );
    3771           0 :     self->borsh_io_error[slen] = '\0';
    3772           0 :     break;
    3773           0 :   }
    3774           0 :   }
    3775           0 : }
    3776           0 : void *fd_instr_error_enum_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3777           0 :   fd_instr_error_enum_t *self = (fd_instr_error_enum_t *) mem;
    3778           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_instr_error_enum_t);
    3779           0 :   fd_instr_error_enum_new(mem);
    3780           0 :   self->discriminant = fd_rng_uint( rng ) % 54;
    3781           0 :   fd_instr_error_enum_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3782           0 :   return mem;
    3783           0 : }
    3784             : 
    3785           0 : void *fd_txn_instr_error_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3786           0 :   fd_txn_instr_error_t *self = (fd_txn_instr_error_t *) mem;
    3787           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_txn_instr_error_t);
    3788           0 :   fd_txn_instr_error_new(mem);
    3789           0 :   self->instr_idx = fd_rng_uchar( rng );
    3790           0 :   fd_instr_error_enum_generate( &self->error, alloc_mem, rng );
    3791           0 :   return mem;
    3792           0 : }
    3793             : 
    3794           0 : void fd_txn_error_enum_inner_generate( fd_txn_error_enum_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3795           0 :   switch (discriminant) {
    3796           0 :   case 8: {
    3797           0 :     fd_txn_instr_error_generate( &self->instruction_error, alloc_mem, rng );
    3798           0 :     break;
    3799           0 :   }
    3800           0 :   case 30: {
    3801           0 :     self->duplicate_instruction = fd_rng_uchar( rng );
    3802           0 :     break;
    3803           0 :   }
    3804           0 :   case 31: {
    3805           0 :     self->insufficient_funds_for_rent = fd_rng_uchar( rng );
    3806           0 :     break;
    3807           0 :   }
    3808           0 :   case 35: {
    3809           0 :     self->program_execution_temporarily_restricted = fd_rng_uchar( rng );
    3810           0 :     break;
    3811           0 :   }
    3812           0 :   }
    3813           0 : }
    3814           0 : void *fd_txn_error_enum_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3815           0 :   fd_txn_error_enum_t *self = (fd_txn_error_enum_t *) mem;
    3816           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_txn_error_enum_t);
    3817           0 :   fd_txn_error_enum_new(mem);
    3818           0 :   self->discriminant = fd_rng_uint( rng ) % 37;
    3819           0 :   fd_txn_error_enum_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3820           0 :   return mem;
    3821           0 : }
    3822             : 
    3823           0 : void fd_txn_result_inner_generate( fd_txn_result_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    3824           0 :   switch (discriminant) {
    3825           0 :   case 1: {
    3826           0 :     fd_txn_error_enum_generate( &self->error, alloc_mem, rng );
    3827           0 :     break;
    3828           0 :   }
    3829           0 :   }
    3830           0 : }
    3831           0 : void *fd_txn_result_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3832           0 :   fd_txn_result_t *self = (fd_txn_result_t *) mem;
    3833           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_txn_result_t);
    3834           0 :   fd_txn_result_new(mem);
    3835           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    3836           0 :   fd_txn_result_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    3837           0 :   return mem;
    3838           0 : }
    3839             : 
    3840           0 : void *fd_cache_status_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3841           0 :   fd_cache_status_t *self = (fd_cache_status_t *) mem;
    3842           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_cache_status_t);
    3843           0 :   fd_cache_status_new(mem);
    3844           0 :   LLVMFuzzerMutate( self->key_slice, 20, 20 );
    3845           0 :   fd_txn_result_generate( &self->result, alloc_mem, rng );
    3846           0 :   return mem;
    3847           0 : }
    3848             : 
    3849           0 : void *fd_status_value_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3850           0 :   fd_status_value_t *self = (fd_status_value_t *) mem;
    3851           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_status_value_t);
    3852           0 :   fd_status_value_new(mem);
    3853           0 :   self->txn_idx = fd_rng_ulong( rng );
    3854           0 :   self->statuses_len = fd_rng_ulong( rng ) % 8;
    3855           0 :   if( self->statuses_len ) {
    3856           0 :     self->statuses = (fd_cache_status_t *) *alloc_mem;
    3857           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_cache_status_t)*self->statuses_len;
    3858           0 :     for( ulong i=0; i < self->statuses_len; i++ ) {
    3859           0 :       fd_cache_status_new( self->statuses + i );
    3860           0 :       fd_cache_status_generate( self->statuses + i, alloc_mem, rng );
    3861           0 :     }
    3862           0 :   } else {
    3863           0 :     self->statuses = NULL;
    3864           0 :   }
    3865           0 :   return mem;
    3866           0 : }
    3867             : 
    3868           0 : void *fd_status_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3869           0 :   fd_status_pair_t *self = (fd_status_pair_t *) mem;
    3870           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_status_pair_t);
    3871           0 :   fd_status_pair_new(mem);
    3872           0 :   fd_hash_generate( &self->hash, alloc_mem, rng );
    3873           0 :   fd_status_value_generate( &self->value, alloc_mem, rng );
    3874           0 :   return mem;
    3875           0 : }
    3876             : 
    3877           0 : void *fd_slot_delta_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3878           0 :   fd_slot_delta_t *self = (fd_slot_delta_t *) mem;
    3879           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_delta_t);
    3880           0 :   fd_slot_delta_new(mem);
    3881           0 :   self->slot = fd_rng_ulong( rng );
    3882           0 :   self->is_root = fd_rng_uchar( rng );
    3883           0 :   self->slot_delta_vec_len = fd_rng_ulong( rng ) % 8;
    3884           0 :   if( self->slot_delta_vec_len ) {
    3885           0 :     self->slot_delta_vec = (fd_status_pair_t *) *alloc_mem;
    3886           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_status_pair_t)*self->slot_delta_vec_len;
    3887           0 :     for( ulong i=0; i < self->slot_delta_vec_len; i++ ) {
    3888           0 :       fd_status_pair_new( self->slot_delta_vec + i );
    3889           0 :       fd_status_pair_generate( self->slot_delta_vec + i, alloc_mem, rng );
    3890           0 :     }
    3891           0 :   } else {
    3892           0 :     self->slot_delta_vec = NULL;
    3893           0 :   }
    3894           0 :   return mem;
    3895           0 : }
    3896             : 
    3897           0 : void *fd_bank_slot_deltas_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3898           0 :   fd_bank_slot_deltas_t *self = (fd_bank_slot_deltas_t *) mem;
    3899           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_bank_slot_deltas_t);
    3900           0 :   fd_bank_slot_deltas_new(mem);
    3901           0 :   self->slot_deltas_len = fd_rng_ulong( rng ) % 8;
    3902           0 :   if( self->slot_deltas_len ) {
    3903           0 :     self->slot_deltas = (fd_slot_delta_t *) *alloc_mem;
    3904           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_slot_delta_t)*self->slot_deltas_len;
    3905           0 :     for( ulong i=0; i < self->slot_deltas_len; i++ ) {
    3906           0 :       fd_slot_delta_new( self->slot_deltas + i );
    3907           0 :       fd_slot_delta_generate( self->slot_deltas + i, alloc_mem, rng );
    3908           0 :     }
    3909           0 :   } else {
    3910           0 :     self->slot_deltas = NULL;
    3911           0 :   }
    3912           0 :   return mem;
    3913           0 : }
    3914             : 
    3915           0 : void *fd_pubkey_rewardinfo_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3916           0 :   fd_pubkey_rewardinfo_pair_t *self = (fd_pubkey_rewardinfo_pair_t *) mem;
    3917           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_pubkey_rewardinfo_pair_t);
    3918           0 :   fd_pubkey_rewardinfo_pair_new(mem);
    3919           0 :   fd_pubkey_generate( &self->pubkey, alloc_mem, rng );
    3920           0 :   fd_reward_info_generate( &self->reward_info, alloc_mem, rng );
    3921           0 :   return mem;
    3922           0 : }
    3923             : 
    3924           0 : void *fd_optional_account_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3925           0 :   fd_optional_account_t *self = (fd_optional_account_t *) mem;
    3926           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_optional_account_t);
    3927           0 :   fd_optional_account_new(mem);
    3928           0 :   {
    3929           0 :     uchar is_null = fd_rng_uchar( rng ) % 2;
    3930           0 :     if( !is_null ) {
    3931           0 :       self->account = (fd_solana_account_t *) *alloc_mem;
    3932           0 :       *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_solana_account_t);
    3933           0 :       fd_solana_account_new( self->account );
    3934           0 :       fd_solana_account_generate( self->account, alloc_mem, rng );
    3935           0 :     }
    3936           0 :     else {
    3937           0 :     self->account = NULL;
    3938           0 :     }
    3939           0 :   }
    3940           0 :   return mem;
    3941           0 : }
    3942             : 
    3943           0 : void *fd_calculated_stake_points_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3944           0 :   fd_calculated_stake_points_t *self = (fd_calculated_stake_points_t *) mem;
    3945           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_calculated_stake_points_t);
    3946           0 :   fd_calculated_stake_points_new(mem);
    3947           0 :   self->points = fd_rng_uint128( rng );
    3948           0 :   self->new_credits_observed = fd_rng_ulong( rng );
    3949           0 :   self->force_credits_update_with_skipped_reward = fd_rng_uchar( rng );
    3950           0 :   return mem;
    3951           0 : }
    3952             : 
    3953           0 : void *fd_calculated_stake_rewards_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3954           0 :   fd_calculated_stake_rewards_t *self = (fd_calculated_stake_rewards_t *) mem;
    3955           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_calculated_stake_rewards_t);
    3956           0 :   fd_calculated_stake_rewards_new(mem);
    3957           0 :   self->staker_rewards = fd_rng_ulong( rng );
    3958           0 :   self->voter_rewards = fd_rng_ulong( rng );
    3959           0 :   self->new_credits_observed = fd_rng_ulong( rng );
    3960           0 :   return mem;
    3961           0 : }
    3962             : 
    3963           0 : void *fd_duplicate_slot_proof_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3964           0 :   fd_duplicate_slot_proof_t *self = (fd_duplicate_slot_proof_t *) mem;
    3965           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_duplicate_slot_proof_t);
    3966           0 :   fd_duplicate_slot_proof_new(mem);
    3967           0 :   self->shred1_len = fd_rng_ulong( rng ) % 8;
    3968           0 :   if( self->shred1_len ) {
    3969           0 :     self->shred1 = (uchar *) *alloc_mem;
    3970           0 :     *alloc_mem = (uchar *) *alloc_mem + self->shred1_len;
    3971           0 :     for( ulong i=0; i < self->shred1_len; ++i) { self->shred1[i] = fd_rng_uchar( rng ) % 0x80; }
    3972           0 :   } else {
    3973           0 :     self->shred1 = NULL;
    3974           0 :   }
    3975           0 :   self->shred2_len = fd_rng_ulong( rng ) % 8;
    3976           0 :   if( self->shred2_len ) {
    3977           0 :     self->shred2 = (uchar *) *alloc_mem;
    3978           0 :     *alloc_mem = (uchar *) *alloc_mem + self->shred2_len;
    3979           0 :     for( ulong i=0; i < self->shred2_len; ++i) { self->shred2[i] = fd_rng_uchar( rng ) % 0x80; }
    3980           0 :   } else {
    3981           0 :     self->shred2 = NULL;
    3982           0 :   }
    3983           0 :   return mem;
    3984           0 : }
    3985             : 
    3986           0 : void *fd_epoch_info_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3987           0 :   fd_epoch_info_pair_t *self = (fd_epoch_info_pair_t *) mem;
    3988           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_info_pair_t);
    3989           0 :   fd_epoch_info_pair_new(mem);
    3990           0 :   fd_pubkey_generate( &self->account, alloc_mem, rng );
    3991           0 :   fd_stake_generate( &self->stake, alloc_mem, rng );
    3992           0 :   return mem;
    3993           0 : }
    3994             : 
    3995           0 : void *fd_vote_info_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    3996           0 :   fd_vote_info_pair_t *self = (fd_vote_info_pair_t *) mem;
    3997           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_vote_info_pair_t);
    3998           0 :   fd_vote_info_pair_new(mem);
    3999           0 :   fd_pubkey_generate( &self->account, alloc_mem, rng );
    4000           0 :   fd_vote_state_versioned_generate( &self->state, alloc_mem, rng );
    4001           0 :   return mem;
    4002           0 : }
    4003             : 
    4004           0 : void *fd_epoch_info_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4005           0 :   fd_epoch_info_t *self = (fd_epoch_info_t *) mem;
    4006           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_info_t);
    4007           0 :   fd_epoch_info_new(mem);
    4008           0 :   self->stake_infos_len = fd_rng_ulong( rng ) % 8;
    4009           0 :   if( self->stake_infos_len ) {
    4010           0 :     self->stake_infos = (fd_epoch_info_pair_t *) *alloc_mem;
    4011           0 :     *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_epoch_info_pair_t)*self->stake_infos_len;
    4012           0 :     for( ulong i=0; i < self->stake_infos_len; i++ ) {
    4013           0 :       fd_epoch_info_pair_new( self->stake_infos + i );
    4014           0 :       fd_epoch_info_pair_generate( self->stake_infos + i, alloc_mem, rng );
    4015           0 :     }
    4016           0 :   } else {
    4017           0 :     self->stake_infos = NULL;
    4018           0 :   }
    4019           0 :   ulong vote_states_len = fd_rng_ulong( rng ) % 8;
    4020           0 :   self->vote_states_pool = fd_vote_info_pair_t_map_join_new( alloc_mem, vote_states_len );
    4021           0 :   self->vote_states_root = NULL;
    4022           0 :   for( ulong i=0; i < vote_states_len; i++ ) {
    4023           0 :     fd_vote_info_pair_t_mapnode_t * node = fd_vote_info_pair_t_map_acquire( self->vote_states_pool );
    4024           0 :     fd_vote_info_pair_generate( &node->elem, alloc_mem, rng );
    4025           0 :     fd_vote_info_pair_t_map_insert( self->vote_states_pool, &self->vote_states_root, node );
    4026           0 :   }
    4027           0 :   self->stake_infos_new_keys_start_idx = fd_rng_ulong( rng );
    4028           0 :   return mem;
    4029           0 : }
    4030             : 
    4031           0 : void *fd_usage_cost_details_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4032           0 :   fd_usage_cost_details_t *self = (fd_usage_cost_details_t *) mem;
    4033           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_usage_cost_details_t);
    4034           0 :   fd_usage_cost_details_new(mem);
    4035           0 :   self->signature_cost = fd_rng_ulong( rng );
    4036           0 :   self->write_lock_cost = fd_rng_ulong( rng );
    4037           0 :   self->data_bytes_cost = fd_rng_ulong( rng );
    4038           0 :   self->programs_execution_cost = fd_rng_ulong( rng );
    4039           0 :   self->loaded_accounts_data_size_cost = fd_rng_ulong( rng );
    4040           0 :   self->allocated_accounts_data_size = fd_rng_ulong( rng );
    4041           0 :   return mem;
    4042           0 : }
    4043             : 
    4044           0 : void fd_transaction_cost_inner_generate( fd_transaction_cost_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    4045           0 :   switch (discriminant) {
    4046           0 :   case 1: {
    4047           0 :     fd_usage_cost_details_generate( &self->transaction, alloc_mem, rng );
    4048           0 :     break;
    4049           0 :   }
    4050           0 :   }
    4051           0 : }
    4052           0 : void *fd_transaction_cost_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4053           0 :   fd_transaction_cost_t *self = (fd_transaction_cost_t *) mem;
    4054           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_transaction_cost_t);
    4055           0 :   fd_transaction_cost_new(mem);
    4056           0 :   self->discriminant = fd_rng_uint( rng ) % 2;
    4057           0 :   fd_transaction_cost_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    4058           0 :   return mem;
    4059           0 : }
    4060             : 
    4061           0 : void *fd_account_costs_pair_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4062           0 :   fd_account_costs_pair_t *self = (fd_account_costs_pair_t *) mem;
    4063           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_account_costs_pair_t);
    4064           0 :   fd_account_costs_pair_new(mem);
    4065           0 :   fd_pubkey_generate( &self->key, alloc_mem, rng );
    4066           0 :   self->cost = fd_rng_ulong( rng );
    4067           0 :   return mem;
    4068           0 : }
    4069             : 
    4070           0 : void *fd_account_costs_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4071           0 :   fd_account_costs_t *self = (fd_account_costs_t *) mem;
    4072           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_account_costs_t);
    4073           0 :   fd_account_costs_new(mem);
    4074           0 :   ulong account_costs_len = fd_rng_ulong( rng ) % 8;
    4075           0 :   self->account_costs_pool = fd_account_costs_pair_t_map_join_new( alloc_mem, fd_ulong_max( account_costs_len, 4096 ) );
    4076           0 :   self->account_costs_root = NULL;
    4077           0 :   for( ulong i=0; i < account_costs_len; i++ ) {
    4078           0 :     fd_account_costs_pair_t_mapnode_t * node = fd_account_costs_pair_t_map_acquire( self->account_costs_pool );
    4079           0 :     fd_account_costs_pair_generate( &node->elem, alloc_mem, rng );
    4080           0 :     fd_account_costs_pair_t_map_insert( self->account_costs_pool, &self->account_costs_root, node );
    4081           0 :   }
    4082           0 :   return mem;
    4083           0 : }
    4084             : 
    4085           0 : void *fd_cost_tracker_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4086           0 :   fd_cost_tracker_t *self = (fd_cost_tracker_t *) mem;
    4087           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_cost_tracker_t);
    4088           0 :   fd_cost_tracker_new(mem);
    4089           0 :   self->account_cost_limit = fd_rng_ulong( rng );
    4090           0 :   self->block_cost_limit = fd_rng_ulong( rng );
    4091           0 :   self->vote_cost_limit = fd_rng_ulong( rng );
    4092           0 :   fd_account_costs_generate( &self->cost_by_writable_accounts, alloc_mem, rng );
    4093           0 :   self->block_cost = fd_rng_ulong( rng );
    4094           0 :   self->vote_cost = fd_rng_ulong( rng );
    4095           0 :   self->transaction_count = fd_rng_ulong( rng );
    4096           0 :   self->allocated_accounts_data_size = fd_rng_ulong( rng );
    4097           0 :   self->transaction_signature_count = fd_rng_ulong( rng );
    4098           0 :   self->secp256k1_instruction_signature_count = fd_rng_ulong( rng );
    4099           0 :   self->ed25519_instruction_signature_count = fd_rng_ulong( rng );
    4100           0 :   self->secp256r1_instruction_signature_count = fd_rng_ulong( rng );
    4101           0 :   return mem;
    4102           0 : }
    4103             : 
    4104           0 : void *fd_rent_paying_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4105           0 :   fd_rent_paying_t *self = (fd_rent_paying_t *) mem;
    4106           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_rent_paying_t);
    4107           0 :   fd_rent_paying_new(mem);
    4108           0 :   self->lamports = fd_rng_ulong( rng );
    4109           0 :   self->data_size = fd_rng_ulong( rng );
    4110           0 :   return mem;
    4111           0 : }
    4112             : 
    4113           0 : void fd_rent_state_inner_generate( fd_rent_state_inner_t * self, void **alloc_mem, uint discriminant, fd_rng_t * rng ) {
    4114           0 :   switch (discriminant) {
    4115           0 :   case 1: {
    4116           0 :     fd_rent_paying_generate( &self->rent_paying, alloc_mem, rng );
    4117           0 :     break;
    4118           0 :   }
    4119           0 :   }
    4120           0 : }
    4121           0 : void *fd_rent_state_generate( void *mem, void **alloc_mem, fd_rng_t * rng ) {
    4122           0 :   fd_rent_state_t *self = (fd_rent_state_t *) mem;
    4123           0 :   *alloc_mem = (uchar *) *alloc_mem + sizeof(fd_rent_state_t);
    4124           0 :   fd_rent_state_new(mem);
    4125           0 :   self->discriminant = fd_rng_uint( rng ) % 3;
    4126           0 :   fd_rent_state_inner_generate( &self->inner, alloc_mem, self->discriminant, rng );
    4127           0 :   return mem;
    4128           0 : }
    4129             : 
    4130             : #endif // HEADER_FUZZ_FD_RUNTIME_TYPES

Generated by: LCOV version 1.14