default void handleSgrAttribute(OfInt bits) {
		int code = bits.nextInt();
		if (30 <= code && code < 50) {
			int colorCode = code % 10;
			AnsiColor color = decodeColor(colorCode, bits, Intensity.NORMAL);
			if (code < 40) {
				handleForegroundColor(color);
			}
			else {
				handleBackgroundColor(color);
			}
			return;
		}
		if (90 <= code && code < 110) {
			int colorCode = code % 10;
			AnsiColor color = decodeColor(colorCode, bits, Intensity.BOLD);
			if (code < 100) {
				handleForegroundColor(color);
			}
			else {
				handleBackgroundColor(color);
			}
			return;
		}
		switch (code) {
			case 0:
				handleResetAttributes();
				return;
			case 1:
				handleIntensity(Intensity.BOLD);
				return;
			case 2:
				handleIntensity(Intensity.DIM);
				return;
			case 3:
				handleFont(AnsiFont.ITALIC);
				return;
			case 4:
				handleUnderline(Underline.SINGLE);
				return;
			case 5:
				handleBlink(Blink.SLOW);
				return;
			case 6:
				handleBlink(Blink.FAST);
				return;
			case 7:
				handleReverseVideo(ReverseVideo.REVERSED);
				return;
			case 8:
				handleHidden(true);
				return;
			case 9:
				handleStrikeThrough(true);
				return;
			case 20:
				handleFont(AnsiFont.BLACK_LETTER);
				return;
			case 21:
				handleUnderline(Underline.DOUBLE);
				return;
			case 22:
				handleIntensity(Intensity.NORMAL);
				return;
			case 23:
				handleFont(AnsiFont.NORMAL);
				return;
			case 24:
				handleUnderline(Underline.NONE);
				return;
			case 25:
				handleBlink(Blink.NONE);
				return;
			case 26:
				handleProportionalSpacing(true);
				return;
			case 27:
				handleReverseVideo(ReverseVideo.NORMAL);
				return;
			case 28:
				handleHidden(false);
				return;
			case 29:
				handleStrikeThrough(false);
				return;
			default:
				Msg.warn(this, "Unrecognized SGR attribute: " + code);
				return;
		}
	}
Handle an Select Graphics Rendition attribute (final byte 'm')

@param bits the parameters
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtHandler.java