private void encode()

in util/base/src/main/java/jetbrains/jetpad/base/base64/Base64Coder.java [77:105]


    private void encode(byte[] bytes) {
      int blocksLen = bytes.length / 3;
      for (int i = 0; i < blocksLen; i++) {
        int base = i * 3;
        int b1 = bytes[base] & 0xFF;
        int b2 = bytes[base + 1] & 0xFF;
        int b3 = bytes[base + 2] & 0xFF;

        appendTableValue(b1 >> 2);
        appendTableValue(((b1 & 0x3) << 4) + (b2 >> 4));
        appendTableValue(((b2 & 0xF) << 2) + (b3 >> 6));
        appendTableValue(b3 & 0x3F);
      }

      int lastBlock = blocksLen * 3 - 1;
      if (bytes.length % 3 == 1) {
        int b = bytes[lastBlock + 1] & 0xFF;
        appendTableValue(b >> 2);
        appendTableValue((b & 0x3) << 4);
        appendString("==");
      } else if (bytes.length % 3 == 2) {
        int b1 = bytes[lastBlock + 1] & 0xFF;
        int b2 = bytes[lastBlock + 2] & 0xFF;
        appendTableValue(b1 >> 2);
        appendTableValue(((b1 & 0x3) << 4) + (b2 >> 4));
        appendTableValue((b2 & 0xF) << 2);
        appendString("=");
      }
    }