anchor.diff:            if (value is int) {
               result = value;
             } else if (value is String) {
  -            result = tryParse32Bit(value);
  +            result = _tryParse32BitProto3(value, context);
             } else {
               throw context.parseException(
                   'Expected int or stringified int', value);
             }
  -          return check32BitUnsigned(result);
  +          return _check32BitUnsignedProto3(result, context);
           case PbFieldType._INT32_BIT:
           case PbFieldType._SINT32_BIT:
           case PbFieldType._SFIXED32_BIT:
  
positive.code:       ignoreUnknownFields, supportNamesWithUnderscores, permissiveEnums);
  
    void recursionHelper(Object? json, _FieldSet fieldSet) {
      int tryParse32Bit(String s) {
        return int.tryParse(s) ??
            (throw context.parseException('expected integer', s));
      }
  
      int check32BitSigned(int n) {
        if (n < -2147483648 || n > 2147483647) {
          throw context.parseException('expected 32 bit unsigned integer', n);
        }
        return n;
      }
  
      int check32BitUnsigned(int n) {
        if (n < 0 || n > 0xFFFFFFFF) {
          throw context.parseException('expected 32 bit unsigned integer', n);
        }
        return n;
      }
  
      Int64 tryParse64Bit(String s) {
        Int64 result;
        try {
          result = Int64.parseInt(s);
        } on FormatException {
          throw context.parseException('expected integer', json);
        }
        return result;
      }
  
      Object? convertProto3JsonValue(Object? value, FieldInfo fieldInfo) {
        if (value == null) {
          return fieldInfo.makeDefault!();
  
negative.code:           if (value is int) {
              result = value;
            } else if (value is String) {
              result = _tryParse32BitProto3(value, context);
            } else {
              throw context.parseException(
                  'Expected int or stringified int', value);
            }
            _check32BitSignedProto3(result, context);
            return result;
          case PbFieldType._UINT64_BIT:
            Int64 result;
            if (value is int) {
              result = Int64(value);
            } else if (value is String) {
              result = _tryParse64BitProto3(json, value, context);
            } else {
              throw context.parseException(
                  'Expected int or stringified int', value);
  