# Python Middleware
if (type == exact) {
if (type != exact) {
   setupRequired(utils -j g574c2588d8+12e5dfef2a)
   setupRequired(sconsUtils -j g937ded2c1a)
   setupRequired(sphinxutils -j g44fe3e915d+b0138be388)
   setupRequired(daf_butler -j gf51ac0d9f8+cf4dfd789f)
   setupRequired(sphgeom -j g31e44d4a5c+b0138be388)
   setupRequired(resources -j g0ed9cbdc82+1de65a85c6)
   setupRequired(pipe_base -j gcc674f9fe7+26bc006e0b)
   setupRequired(pex_config -j ge80df9fc40+e6db5413d1)
   setupOptional(daf_base -j g8ea07a8fe4+78a4c88802)
   setupRequired(cpputils -j g87389fa792+d8b5378923)
   setupRequired(base -j g53246c7159+b0138be388)
   setupRequired(pex_exceptions -j g786e29fd12+796b79145d)
   setupRequired(astro_metadata_translator -j g36c86f07e0+e6db5413d1)
   setupRequired(afw -j gaa753fd333+03f406da14)
   setupRequired(geom -j g19811a7679+138f7293ba)
   setupRequired(log -j geaed405ab2+1de65a85c6)
   setupRequired(astshim -j gf5dcc679e7+35a0ce2edd)
}
} else {
   if (type == exact) {
      setupRequired(utils           -j g574c2588d8+12e5dfef2a)
      setupRequired(sconsUtils      -j g937ded2c1a)
      setupRequired(sphinxutils     -j g44fe3e915d+b0138be388)
      setupRequired(daf_butler      -j gf51ac0d9f8+cf4dfd789f)
      setupRequired(sphgeom         -j g31e44d4a5c+b0138be388)
      setupRequired(resources       -j g0ed9cbdc82+1de65a85c6)
      setupRequired(pipe_base       -j gcc674f9fe7+26bc006e0b)
      setupRequired(pex_config      -j ge80df9fc40+e6db5413d1)
      setupOptional(daf_base        -j g8ea07a8fe4+78a4c88802)
      setupRequired(cpputils        -j g87389fa792+d8b5378923)
      setupRequired(base            -j g53246c7159+b0138be388)
      setupRequired(pex_exceptions  -j g786e29fd12+796b79145d)
      setupRequired(astro_metadata_translator -j g36c86f07e0+e6db5413d1)
      setupRequired(afw             -j gaa753fd333+03f406da14)
      setupRequired(geom            -j g19811a7679+138f7293ba)
      setupRequired(log             -j geaed405ab2+1de65a85c6)
      setupRequired(astshim         -j gf5dcc679e7+35a0ce2edd)
   } else {
      setupRequired(utils g574c2588d8+12e5dfef2a [>= g574c2588d8+12e5dfef2a])
      setupRequired(daf_butler gf51ac0d9f8+cf4dfd789f [>= gf51ac0d9f8+cf4dfd789f])
      setupRequired(pipe_base gcc674f9fe7+26bc006e0b [>= gcc674f9fe7+26bc006e0b])
      setupRequired(resources g0ed9cbdc82+1de65a85c6 [>= g0ed9cbdc82+1de65a85c6])
      setupRequired(astro_metadata_translator g36c86f07e0+e6db5413d1 [>= g36c86f07e0+e6db5413d1])
      setupRequired(pex_config ge80df9fc40+e6db5413d1 [>= ge80df9fc40+e6db5413d1])
      
      # LSST C++.
      setupRequired(daf_base g8ea07a8fe4+78a4c88802 [>= g8ea07a8fe4+78a4c88802])
      setupRequired(afw gaa753fd333+03f406da14 [>= gaa753fd333+03f406da14])
      setupRequired(geom g19811a7679+138f7293ba [>= g19811a7679+138f7293ba])
      setupRequired(pex_exceptions g786e29fd12+796b79145d [>= g786e29fd12+796b79145d])
      setupOptional(log geaed405ab2+1de65a85c6 [>= geaed405ab2+1de65a85c6])
   }
}
envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
