diff --git a/http/utility.hpp b/http/utility.hpp
index f2ac6e4..494b734 100644
--- a/http/utility.hpp
+++ b/http/utility.hpp
@@ -256,17 +256,19 @@
 
         base64code0 = getCodeValue(input[i]);
         if (base64code0 == nop)
-        { // non base64 character
+        {
+            // non base64 character
             return false;
         }
         if (!(++i < inputLength))
-        { // we need at least two input bytes for first
-          // byte output
+        {
+            // we need at least two input bytes for first byte output
             return false;
         }
         base64code1 = getCodeValue(input[i]);
         if (base64code1 == nop)
-        { // non base64 character
+        {
+            // non base64 character
             return false;
         }
         output +=
@@ -276,12 +278,14 @@
         {
             char c = input[i];
             if (c == '=')
-            { // padding , end of input
+            {
+                // padding , end of input
                 return (base64code1 & 0x0f) == 0;
             }
             base64code2 = getCodeValue(input[i]);
             if (base64code2 == nop)
-            { // non base64 character
+            {
+                // non base64 character
                 return false;
             }
             output += static_cast<char>(
@@ -292,12 +296,14 @@
         {
             char c = input[i];
             if (c == '=')
-            { // padding , end of input
+            {
+                // padding , end of input
                 return (base64code2 & 0x03) == 0;
             }
             char base64code3 = getCodeValue(input[i]);
             if (base64code3 == nop)
-            { // non base64 character
+            {
+                // non base64 character
                 return false;
             }
             output +=
