struct MuchBitfield {
  char m0 : 1;
  char m1 : 1;
  char m2 : 1;
  char m3 : 1;
  char m4 : 1;
  char m5 : 1;
  char m6 : 1;
  char m7 : 1;
  char m8 : 1;
  char m9 : 1;
  char m10 : 1;
  char m11 : 1;
  char m12 : 1;
  char m13 : 1;
  char m14 : 1;
  char m15 : 1;
  char m16 : 1;
  char m17 : 1;
  char m18 : 1;
  char m19 : 1;
  char m20 : 1;
  char m21 : 1;
  char m22 : 1;
  char m23 : 1;
  char m24 : 1;
  char m25 : 1;
  char m26 : 1;
  char m27 : 1;
  char m28 : 1;
  char m29 : 1;
  char m30 : 1;
  char m31 : 1;
  char m32 : 1;
};

typedef struct {
    unsigned int bit_1 : 1;
    unsigned int bit_2 : 1;
    unsigned int bit_3 : 1;
    unsigned int bit_4 : 1;
    unsigned int bit_5 : 1;
    unsigned int bit_6 : 1;
    unsigned int bit_7 : 1;
    unsigned int bit_8 : 1;
    unsigned int bit_9 : 1;
    unsigned int bit_10 : 1;
    unsigned int bit_11 : 1;
    unsigned int bit_12 : 1;
    unsigned int bit_13 : 1;
    unsigned int bit_14 : 1;
    unsigned int bit_15 : 1;
    unsigned int bit_16 : 1;
    unsigned int bit_17 : 1;
    unsigned int bit_18 : 1;
    unsigned int bit_19 : 1;
    unsigned int bit_20 : 1;
    unsigned int bit_21 : 1;
    unsigned int bit_22 : 1;
    unsigned int bit_23 : 1;
    unsigned int bit_24 : 1;
    unsigned int bit_25 : 1;
    unsigned int bit_26 : 1;
    unsigned int bit_27 : 1;
    unsigned int bit_28 : 1;
    unsigned int bit_29 : 1;
    unsigned int bit_30 : 1;
    unsigned int bit_31 : 1;
    unsigned int bit_32 : 1;
    unsigned int bit_33 : 1;
    unsigned int bit_34 : 1;
    unsigned int bit_35 : 1;
    unsigned int bit_36 : 1;
    unsigned int bit_37 : 1;
    unsigned int bit_38 : 1;
    unsigned int bit_39 : 1;
    unsigned int bit_40 : 1;
    unsigned int bit_41 : 1;
    unsigned int : 7;
    unsigned int : 16;
    unsigned int : 16;
    unsigned int : 16;
    unsigned int : 16;
    unsigned int : 16;
} capabilities;