diff --git a/compiled/cern/global/frontend.xml b/compiled/cern/global/frontend.xml
index 0e8bf5049a52c4a317a5bd879ceab9c87e064472..312a507ab5b76c8858df63f3ce9091cff8d72453 100644
--- a/compiled/cern/global/frontend.xml
+++ b/compiled/cern/global/frontend.xml
@@ -560,7 +560,7 @@
             <running_glideins_per_entry max="300" min="0" relative_to_queue="1.05"/>
             <running_glideins_total curb="3200" max="3500"/>
          </config>
-         <match match_expr='( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
+         <match match_expr='(glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
             <factory query_expr='(GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)'>
                <match_attrs>
                   <match_attr name="GLIDEIN_CMSSite" type="string"/>
diff --git a/compiled/cern/itb/frontend.xml b/compiled/cern/itb/frontend.xml
index 80457a260348ac9456d52be14197069a6ff2a1bd..86860df32f9f0063100408fd20f367bd4fd15b54 100644
--- a/compiled/cern/itb/frontend.xml
+++ b/compiled/cern/itb/frontend.xml
@@ -559,7 +559,7 @@
             <running_glideins_per_entry max="300" min="0" relative_to_queue="1.05"/>
             <running_glideins_total curb="3200" max="3500"/>
          </config>
-         <match match_expr='( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
+         <match match_expr='(glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
             <factory query_expr='(GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)'>
                <match_attrs>
                   <match_attr name="GLIDEIN_CMSSite" type="string"/>
diff --git a/compiled/cern/itbdev/frontend.xml b/compiled/cern/itbdev/frontend.xml
index cbeb9e7fdf2120a0d6e31c066a8b7c9135246c4a..22d1aa2275ea76dfb1d4f54d37521db71944a21f 100644
--- a/compiled/cern/itbdev/frontend.xml
+++ b/compiled/cern/itbdev/frontend.xml
@@ -526,7 +526,7 @@
             <running_glideins_per_entry max="300" min="0" relative_to_queue="1.05"/>
             <running_glideins_total curb="3200" max="3500"/>
          </config>
-         <match match_expr='( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
+         <match match_expr='(glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
             <factory query_expr='(GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)'>
                <match_attrs>
                   <match_attr name="GLIDEIN_CMSSite" type="string"/>
diff --git a/compiled/fnal/global/frontend.xml b/compiled/fnal/global/frontend.xml
index 9ac16a2d15b44a84832894f0879406dd25e256f9..56ae520c653576d1aac4a37eb8cb1897e44b5a21 100644
--- a/compiled/fnal/global/frontend.xml
+++ b/compiled/fnal/global/frontend.xml
@@ -560,7 +560,7 @@
             <running_glideins_per_entry max="300" min="0" relative_to_queue="1.05"/>
             <running_glideins_total curb="3200" max="3500"/>
          </config>
-         <match match_expr='( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
+         <match match_expr='(glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
             <factory query_expr='(GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)'>
                <match_attrs>
                   <match_attr name="GLIDEIN_CMSSite" type="string"/>
diff --git a/compiled/fnal/itb/frontend.xml b/compiled/fnal/itb/frontend.xml
index bfa7fe6c146aff12c67d250258085b1bb622dafd..61fb18be782ab0d103e83f5bb2c1908ecf74bb8e 100644
--- a/compiled/fnal/itb/frontend.xml
+++ b/compiled/fnal/itb/frontend.xml
@@ -559,7 +559,7 @@
             <running_glideins_per_entry max="300" min="0" relative_to_queue="1.05"/>
             <running_glideins_total curb="3200" max="3500"/>
          </config>
-         <match match_expr='( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
+         <match match_expr='(glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )' start_expr='ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )'>
             <factory query_expr='(GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)'>
                <match_attrs>
                   <match_attr name="GLIDEIN_CMSSite" type="string"/>
diff --git a/inventory/classes/common.yml b/inventory/classes/common.yml
index cf8405cf04fa97b17e1b068c8cb087a407ecf26c..34e26abdf3591a4700c2d08063fcbd6346d57660 100644
--- a/inventory/classes/common.yml
+++ b/inventory/classes/common.yml
@@ -333,10 +333,10 @@ parameters:
         max: 3500
       # If a) Site is UCSD or Caltech and any MINI or MINISIM OR b) Site==Wisconsin and only MINI data OR  c) Site==MIT and only a subset of MINI
       match_expr: >-
-        ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_UCSD", "T2_US_Caltech"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_Wisconsin"] and "MINIAODSIM" not in job["DESIRED_CMSDataset"] ) or ( glidein["attrs"].get("GLIDEIN_CMSSite") in ["T2_US_MIT"] and ( "UL2016" in job["DESIRED_CMSDataset"] or "UL2017" in job["DESIRED_CMSDataset"]))
+        (glidein["attrs"].get("GLIDEIN_Country") in job["DESIRED_Overflow_Region"].split(",")) and ( glidein["attrs"].get("GLIDEIN_CMSSite") not in ["T2_US_Wisconsin", "T2_US_MIT"] or "MINIAODSIM" not in job["DESIRED_CMSDataset"] )
       # Same idea,  UCSD and Caltech can get jobs looking for any  MINIAOD and MINIAODSIM,  Wisconsin can only get jobs looking for MINIAOD and MIT only gets jobs looking for a subset of MINIAOD
       start_expr: >-
-        ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ( GLIDEIN_CMSSite=?="T2_US_Wisconsin"  &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset) ) || ( GLIDEIN_CMSSite=?="T2_US_MIT"  &amp;&amp; regexp("/*/Run201[6,7].*/MINIAOD/.*UL201[6,7].*", DESIRED_CMSDataset) ) ) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )
+        ifthenelse(CMS_ALLOW_OVERFLOW isnt undefined,CMS_ALLOW_OVERFLOW=?="True", undefined) &amp;&amp; (CRAB_UserRole=!="production") &amp;&amp; ifthenelse(DESIRED_Overflow_Region isnt undefined, stringListMember(GLIDEIN_Country,DESIRED_Overflow_Region),undefined) &amp;&amp;( ((GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech") &amp;&amp; (regexp("/*/RunIISummer(19|20)UL(16|17|18).*/MINIAODSIM", DESIRED_CMSDataset) || regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset))) || ((GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; regexp("/*/Run201[6,7,8].*/MINIAOD/.*UL201[6,7,8].*", DESIRED_CMSDataset)) &amp;&amp; ( isUndefined(RequestGPUs) || RequestGPUs =?= 0 )
       factory_query_expr: >-
         (GLIDEIN_CMSSite=?="T2_US_UCSD" || GLIDEIN_CMSSite=?="T2_US_Caltech" || GLIDEIN_CMSSite=?="T2_US_Wisconsin" || GLIDEIN_CMSSite=?="T2_US_MIT") &amp;&amp; stringListMember("CMS",GLIDEIN_Supported_VOs) &amp;&amp; !ifthenelse(CMS_Local_Entry isnt undefined, CMS_Local_Entry, False)
       job_query_expr: >-