diff --git a/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml
index 4f020ea..3f21696 100644
--- a/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !CDOCONC.S.F00 && !CDOCONC.S.F01 && !CDOCONC.S.F02 && !CDOCONC.S.F03
-          && !CDOCONC.S.F04 && !CDOCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given CDOCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml
index c01ac0d..7d956b2 100644
--- a/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !CMOCONC.S.F00 && !CMOCONC.S.F01 && !CMOCONC.S.F02 && !CMOCONC.S.F03
-          && !CMOCONC.S.F04 && !CMOCONC.S.F05 "
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given CMOCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml
index b64b3fe..eb137ff 100644
--- a/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !FLDCONC.S.F00 && !FLDCONC.S.F01 && !FLDCONC.S.F02 && !FLDCONC.S.F03
-          && !FLDCONC.S.F04 && !FLDCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given FLDCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml
index 9441984..06c578f 100644
--- a/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !NDOCONC.S.F00 && !NDOCONC.S.F01 && !NDOCONC.S.F02 && !NDOCONC.S.F03
-          && !NDOCONC.S.F04 && !NDOCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given NDOCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml
index 659fc24..a2429db 100644
--- a/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !OZCONC.S.F00 && !OZCONC.S.F01 && !OZCONC.S.F02 && !OZCONC.S.F03 &&
-          !OZCONC.S.F04 && !OZCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given OZCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml
index 1ea2ab1..9dcde48 100644
--- a/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !PMHCONC.S.F00 && !PMHCONC.S.F01 && !PMHCONC.S.F02 && !PMHCONC.S.F03
-          && !PMHCONC.S.F04 && !PMHCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given PMHCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml
index e5a3083..68e56bf 100644
--- a/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !PMICONC.S.F00 && !PMICONC.S.F01 && !PMICONC.S.F02 && !PMICONC.S.F03
-          && !PMICONC.S.F04 && !PMICONC.S.F05 "
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given PMICONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml
index 7184fa2..5e48eac 100644
--- a/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !PMKCONC.S.F00 && !PMKCONC.S.F01 && !PMKCONC.S.F02 && !PMKCONC.S.F03
-          && !PMKCONC.S.F04 && !PMKCONC.S.F05 "
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given PMKCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml
index 34fc1cd..624d8a1 100644
--- a/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !RNCONC.S.F00 && !RNCONC.S.F01 && !RNCONC.S.F02 && !RNCONC.S.F03 &&
-          !RNCONC.S.F04 && !RNCONC.S.F05"
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given RNCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml
index ff5ef4e..f315cb8 100644
--- a/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml
@@ -42,15 +42,12 @@
     - label:
           "Step 3a: Read the global attribute: FeatureMap and check for either
           bit 0 or 1 set"
-      PICS:
-          " !TVOCCONC.S.F00 && !TVOCCONC.S.F01 && !TVOCCONC.S.F02 &&
-          !TVOCCONC.S.F03 && !TVOCCONC.S.F04 && !TVOCCONC.S.F05 "
       command: "readAttribute"
       attribute: "FeatureMap"
       response:
-          value: 0
           constraints:
               type: bitmap32
+              hasMasksSet: [0x03]
 
     - label:
           "Step 3b: Given TVOCCONC.S.F00(MEA) ensure featuremap has the correct
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index 140f844..b8c70cb 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -27805,11 +27805,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !CDOCONC.S.F00 && !CDOCONC.S.F01 && !CDOCONC.S.F02 && !CDOCONC.S.F03 && !CDOCONC.S.F04 && !CDOCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -28287,11 +28282,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -29472,11 +29462,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !CMOCONC.S.F00 && !CMOCONC.S.F01 && !CMOCONC.S.F02 && !CMOCONC.S.F03 && !CMOCONC.S.F04 && !CMOCONC.S.F05 ")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -29954,11 +29939,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -31139,11 +31119,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !FLDCONC.S.F00 && !FLDCONC.S.F01 && !FLDCONC.S.F02 && !FLDCONC.S.F03 && !FLDCONC.S.F04 && !FLDCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -31621,11 +31596,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -32806,11 +32776,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !NDOCONC.S.F00 && !NDOCONC.S.F01 && !NDOCONC.S.F02 && !NDOCONC.S.F03 && !NDOCONC.S.F04 && !NDOCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -33289,11 +33254,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -34474,10 +34434,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(" !OZCONC.S.F00 && !OZCONC.S.F01 && !OZCONC.S.F02 && !OZCONC.S.F03 && !OZCONC.S.F04 && !OZCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -34951,11 +34907,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -36135,11 +36086,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !PMHCONC.S.F00 && !PMHCONC.S.F01 && !PMHCONC.S.F02 && !PMHCONC.S.F03 && !PMHCONC.S.F04 && !PMHCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -36617,11 +36563,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -37802,11 +37743,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !PMICONC.S.F00 && !PMICONC.S.F01 && !PMICONC.S.F02 && !PMICONC.S.F03 && !PMICONC.S.F04 && !PMICONC.S.F05 ")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -38284,11 +38220,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -39469,11 +39400,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(
-                    " !PMKCONC.S.F00 && !PMKCONC.S.F01 && !PMKCONC.S.F02 && !PMKCONC.S.F03 && !PMKCONC.S.F04 && !PMKCONC.S.F05 ")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -39951,11 +39877,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -41136,10 +41057,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(" !RNCONC.S.F00 && !RNCONC.S.F01 && !RNCONC.S.F02 && !RNCONC.S.F03 && !RNCONC.S.F04 && !RNCONC.S.F05")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -41617,11 +41534,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
@@ -42801,11 +42713,6 @@
         case 2:
             ChipLogProgress(chipTool,
                 " ***** Test Step 2 : Step 3a: Read the global attribute: FeatureMap and check for either bit 0 or 1 set\n");
-            if (ShouldSkip(" !TVOCCONC.S.F00 && !TVOCCONC.S.F01 && !TVOCCONC.S.F02 && !TVOCCONC.S.F03 && !TVOCCONC.S.F04 && "
-                           "!TVOCCONC.S.F05 ")) {
-                NextTest();
-                return;
-            }
             err = TestStep3aReadTheGlobalAttributeFeatureMapAndCheckForEitherBit0Or1Set_2();
             break;
         case 3:
@@ -43290,11 +43197,6 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL));
-            }
-
             VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32"));
             NextTest();
         }];
