serSession.usPersonUid = PersonGroupMember.groupMemberPersonUid JOIN ScopedGrant ON ScopedGrant.sgGroupUid = PersonGroupMember.groupMemberGroupUid AND (ScopedGrant.sgPermissions & 536870912 ) > 0 JOIN School ON ((ScopedGrant.sgTableId = -2 AND ScopedGrant.sgEntityUid = -2) OR (ScopedGrant.sgTableId = 164 AND ScopedGrant.sgEntityUid = School.schoolUid)) JOIN ScopedGrant ScopedGrantEntity ON School.schoolUid = ScopedGrantEntity.sgEntityUid AND ScopedGrantEntity.sgTableId = 9 JOIN PersonGroup ON ScopedGrantEntity.sgGroupUid = PersonGroup.groupUid WHERE UserSession.usClientNodeId = :newNodeId AND UserSession.usStatus = 1 AND PersonGroup.groupLct != COALESCE( (SELECT pgVersionId FROM PersonGroupReplicate WHERE pgPk = PersonGroup.groupUid AND pgDestination = UserSession.usClientNodeId), 0) /*psql ON CONFLICT(pgPk, pgDestination) DO UPDATE SET pgPending = true */ updateAsync Int entity Update Repository Dao                                ) +  3 5 6 7"'20 0BJ! 0 2 0 H' (J%0 2 0 H@ (J' 0 02 0 H' (J%020 H@ (JA0H@ (  J 0   J 0 JA!0H@ ("  J 0   J 0 JA#0H@ ($  J 0   J 0 JA%0H@ (&  J 0   J 0 JB'02 (0 H@ (*  J 0 JB,02 (0 H@ (-  J 0 JB.02 (0 H@ (/  J 0 JB002 (0 H@ (1  J 0 J20240 H@    kotlin Kotlin 'Kotlin'.'Kind'.'CLASS' CLASS Kind _../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/dao/PersonGroupDao.kt PersonGroupDao $metadata$ kind Kind_CLASS simpleName interfaces BaseDao package$com com _ package$ustadmobile ustadmobile com.ustadmobile package$core core com.ustadmobile.core package$db db com.ustadmobile.core.db package$dao dao com.ustadmobile.core.db.dao I\.com.ustadmobile.core.db.dao$PersonGroupDao B\.com.ustadmobile.core.db.dao$BaseDao K0:\.com.ustadmobile.core.db.dao$PersonGroupDaoB            #          xu s l    T M                " RO KG @    ( !       RO KG @    ( !       RO KG @    ( !       RO KG @    ( !       RO K G @    ( !       -* &        *2222 : Rcom.ustadmobile.core.db.dao , com ustadmobile core db dao PersonPictureDao Companion kotlin Any TABLE_LEVEL_PERMISSION String (SELECT admin FROM Person WHERE personUid = :accountPersonUid) OR EXISTS(SELECT PersonGroupMember.groupMemberPersonUid FROM PersonGroupMember JOIN EntityRole ON EntityRole.erGroupUid = PersonGroupMember.groupMemberGroupUid JOIN Role ON EntityRole.erRoleUid = Role.roleUid WHERE PersonGroupMember.groupMemberPersonUid = :accountPersonUid AND EntityRole.erTableId = 50 AND Role.rolePermissions & !TABLE_LEVEL_PERMISSION_CONDITION2  > 0) BaseDao lib entities PersonPicture findByPersonUidAsync personUid Long androidx room Query value SELECT * FROM PersonPicture WHERE personPicturePersonUid = :personUid AND CAST(personPictureActive AS INTEGER) = 1 ORDER BY picTimestamp DESC LIMIT 1 findByPersonUidLive door DoorLiveData iSELECT * FROM PersonPicture where personPicturePersonUid = :personUid ORDER BY picTimestamp DESC LIMIT 1 replicateOnChange Unit  REPLACE INTO PersonPictureReplicate(ppPk, ppDestination) SELECT DISTINCT PersonPicture.personPictureUid AS ppUid, UserSession.usClientNodeId AS ppDestination FROM ChangeLog JOIN PersonPicture ON ChangeLog.chTableId = 50 AND ChangeLog.chEntityPk = PersonPicture.personPictureUid JOIN Person ON Person.personUid = PersonPicture.personPicturePersonUid JOIN ScopedGrant ON ((ScopedGrant.sgTableId = -2 AND ScopedGrant.sgEntityUid = -2) OR (ScopedGrant.sgTableId = 9 AND ScopedGrant.sgEntityUid = Person.personUid) OR (ScopedGrant.sgTableId = 6 AND ScopedGrant.sgEntityUid IN ( SELECT DISTINCT clazzEnrolmentClazzUid FROM ClazzEnrolment WHERE clazzEnrolmentPersonUid = Person.personUid AND ClazzEnrolment.clazzEnrolmentActive)) OR (ScopedGrant.sgTableId = 164 AND ScopedGrant.sgEntityUid IN ( SELECT DISTINCT schoolMemberSchoolUid FROM SchoolMember WHERE schoolMemberPersonUid = Person.personUid AND schoolMemberActive)) ) AND (ScopedGrant.sgPermissions & 1048576 ) > 0 JOIN PersonGroupMember AS PrsGrpMbr ON ScopedGrant.sgGroupUid = PrsGrpMbr.groupMemberGroupUid JOIN UserSession ON UserSession.usPersonUid = PrsGrpMbr.groupMemberPersonUid AND UserSession.usStatus = 1 WHERE UserSession.usClientNodeId != ( SELECT nodeClientId FROM SyncNode LIMIT 1) AND PersonPicture.personPictureLct != COALESCE( (SELECT ppVersionId FROM PersonPictureReplicate WHERE ppPk = PersonPicture.personPictureUid AND ppDestination = UserSession.usClientNodeId), 0) /*psql ON CONFLICT(ppPk, ppDestination) DO UPDATE SET ppPending = true */ annotation ReplicationRunOnChange 'ReplicationCheckPendingNotificationsFor replicateOnNewNode newNodeId NewNodeIdParam  REPLACE INTO PersonPictureReplicate(ppPk, ppDestination) SELECT DISTINCT PersonPicture.personPictureUid AS ppPk, :newNodeId AS ppDestination FROM UserSession JOIN PersonGroupMember ON UserSession.usPersonUid = PersonGroupMember.groupMemberPersonUid JOIN ScopedGrant ON ScopedGrant.sgGroupUid = PersonGroupMember.groupMemberGroupUid AND (ScopedGrant.sgPermissions & 1048576 ) > 0 JOIN Person ON ((ScopedGrant.sgTableId = -2 AND ScopedGrant.sgEntityUid = -2) OR (ScopedGrant.sgTableId = 9 AND ScopedGrant.sgEntityUid = Person.personUid) OR (ScopedGrant.sgTableId = 6 AND Person.personUid IN ( SELECT DISTINCT clazzEnrolmentPersonUid FROM ClazzEnrolment WHERE clazzEnrolmentClazzUid =ScopedGrant.sgEntityUid AND ClazzEnrolment.clazzEnrolmentActive)) OR (ScopedGrant.sgTableId = 164 AND Person.personUid IN ( SELECT DISTINCT schoolMemberPersonUid FROM SchoolMember WHERE schoolMemberSchoolUid = ScopedGrant.sgEntityUid AND schoolMemberActive)) ) JOIN PersonPicture ON PersonPicture.personPicturePersonUid = Person.personUid WHERE UserSession.usClientNodeId = :newNodeId AND UserSession.usStatus = 1 AND PersonPicture.personPictureLct != COALESCE( (SELECT ppVersionId FROM PersonPictureReplicate WHERE ppPk = PersonPicture.personPictureUid AND ppDestination = :newNodeId), 0) /*psql ON CONFLICT(ppPk, ppDestination) DO UPDATE SET ppPending = true */ ReplicationRunOnNewNode updateAsync personPicture Update Dao Repository                           ! " # & ( + , -"120BR 0 XD( R 0 XD( "' 200 :BJ%020H@ (J' 0020H' (JA0H@ (   J 0  J 0JB$02 %0H@ ('  J 0J)02*0H@    kotlin Kotlin 'Kotlin'.'toString' toString 'Kotlin'.'Kind'.'OBJECT' OBJECT Kind 'Kotlin'.'Kind'.'CLASS' CLASS a../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/dao/PersonPictureDao.kt PersonPictureDao &PersonPictureDao$Companion_getInstance PersonPictureDao$Companion #PersonPictureDao$Companion_instance TABLE_LEVEL_PERMISSION ?(SELECT admin FROM Person WHERE personUid = :accountPersonUid) OR LEXISTS(SELECT PersonGroupMember.groupMemberPersonUid FROM PersonGroupMember R JOIN EntityRole ON EntityRole.erGroupUid = PersonGroupMember.groupMemberGroupUid 2 JOIN Role ON EntityRole.erRoleUid = Role.roleUid  WHERE < PersonGroupMember.groupMemberPersonUid = :accountPersonUid  AND EntityRole.erTableId =  AND Role.rolePermissions & #TABLE_LEVEL_PERMISSION_CONDITION2_0  > 0) $metadata$ kind Kind_OBJECT simpleName Companion interfaces Kind_CLASS BaseDao defineProperty Object get U\.com.ustadmobile.core.db.dao$PersonPictureDao$Companion package$com com _ package$ustadmobile ustadmobile com.ustadmobile package$core core com.ustadmobile.core package$db db com.ustadmobile.core.db package$dao dao com.ustadmobile.core.db.dao K\.com.ustadmobile.core.db.dao$PersonPictureDao o0:\.com.ustadmobile.core.db.dao$PersonPictureDao$Companion!TABLE_LEVEL_PERMISSION| x\.com.ustadmobile.core.db.dao$PersonPictureDao$Companion!TABLE_LEVEL_PERMISSION_CONDITION2| \object:\.com.ustadmobile.core.db.dao$PersonPictureDao$Companion W0:\.com.ustadmobile.core.db.dao$PersonPictureDao$Companion B\.com.ustadmobile.core.db.dao$BaseDao M0:\.com.ustadmobile.core.db.dao$PersonPictureDaor           ! & ( ) , / 2       #     #      85 3   $   W      W  &# !W      Y     Y%  Y%  Y%  Y%  Y%  Y%  mY% ` MY% @ -Y%  Y%  Z  [  \  ]  ^  _  `     `1 2 a  74 2c %     c:  ol j c    K D                  W qmj NWE !W       W    W W  xu s l    T M               " WT P I   "  #      $ % RO K G @   '  ( !   '    ' RO K G @   *  ( !   *    + RO KG @   -  ( !   -    . RO KG @   0 ( !   0   1 RO KG @   3 ( !   3   4 -* &      5*252%262722627228292 2: 2;:: Rcom.ustadmobile.core.db.daoU -  com ustadmobile core db dao ContainerEntryDao BaseDao lib entities ContainerEntry deleteByContainerUid kotlin Unit containerUid Long androidx room Query value ?DELETE FROM ContainerEntry WHERE ceContainerUid = :containerUid deleteByContentEntryUid contentEntryUid  DELETE FROM ContainerEntry WHERE ceContainerUid IN (SELECT containerUid FROM Container WHERE containerContentEntryUid = :contentEntryUid) #deleteContainerEntriesCreatedByJobs jobId  DELETE FROM ContainerEntry WHERE ceContainerUid IN (SELECT cjiContainerUid FROM ContentJobItem JOIN ContentJob ON ContentJobItem.cjiJobUid = ContentJob.cjUid WHERE ContentJob.cjUid = :jobId) deleteList entries collections List Delete findByContainer $ContainerEntryWithContainerEntryFile SELECT ContainerEntry.*, ContainerEntryFile.* FROM ContainerEntry LEFT JOIN ContainerEntryFile ON ContainerEntry.ceCefUid = ContainerEntryFile.cefUid WHERE ContainerEntry.ceContainerUid = :containerUid findByContainerAsync findByContainerWithMd5 ContainerEntryWithMd5 SELECT ContainerEntry.*, ContainerEntryFile.cefMd5 AS cefMd5 FROM ContainerEntry LEFT JOIN ContainerEntryFile ON ContainerEntry.ceCefUid = ContainerEntryFile.cefUid WHERE ContainerEntry.ceContainerUid = :containerUid findByPathInContainer pathInContainer String SELECT ContainerEntry.*, ContainerEntryFile.* FROM ContainerEntry LEFT JOIN ContainerEntryFile ON ContainerEntry.ceCefUid = ContainerEntryFile.cefUid WHERE ContainerEntry.ceContainerUid = :containerUid AND ContainerEntry.cePath = :pathInContainer insertAndSetIds containerEntryList Transaction insertListAsync Insert insertWithMd5SumsAsync path md5  INSERT INTO ContainerEntry(ceContainerUid, cePath, ceCefUid) SELECT :containerUid AS ceContainerUid, :path AS cePath, (SELECT COALESCE( (SELECT cefUid FROM ContainerEntryFile WHERE cefMd5 = :md5 LIMIT 1), 0)) Dao                               $  ( , . 3"'20 0BJ 0 2 0 H' (J0 20 H' (J0 20 H' (J0 2 0 0H'J%002 0 H' (!J)"002 0 H@ (!J%#002 0 H' (%J)&02 0 2'0H' ()J*0 2 +0 0HJ-0 2 +0 0H@J3/0 2 0 200210H@ (2  0 kotlin Kotlin 'Kotlin'.'Kind'.'CLASS' CLASS Kind b../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/dao/ContainerEntryDao.kt ContainerEntryDao insertAndSetIds_oe4mvo$ prototype containerEntryList tmp$ iterator hasNext entry next ceUid insert_11rb$ $metadata$ kind Kind_CLASS simpleName interfaces BaseDao package$com com _ package$ustadmobile ustadmobile com.ustadmobile package$core core com.ustadmobile.core package$db db com.ustadmobile.core.db package$dao dao com.ustadmobile.core.db.dao L\.com.ustadmobile.core.db.dao$ContainerEntryDao .0:\.kotlin.collections$List#iterator| 10:\.kotlin.collections$Iterator#hasNext| .0:\.kotlin.collections$Iterator#next| 0:\.com.ustadmobile.core.db.dao$ContainerEntryDao#insert|com.ustadmobile.lib.db.entities.ContainerEntry `0:\.com.ustadmobile.lib.db.entities$ContainerEntry!ceUid| 0:\.com.ustadmobile.core.db.dao$ContainerEntryDao#insertAndSetIds|kotlin.collections.List<+com.ustadmobile.lib.db.entities.ContainerEntry> B\.com.ustadmobile.core.db.dao$BaseDao N0:\.com.ustadmobile.core.db.dao$ContainerEntryDaox                   #  #                      "  HC A  4  '          !       0 ' %!       `] [  N      0 #      !  xu s l    T M               " RO K G @    ( !       RO KG @     ( !        RO KG @    ( !       RO KG @   ! ( !   !   " RO KG @   $ ( !   $   % -* &      &*2&2'2(2)2* 2+ 2,2 2- 2.: Rcom.ustadmobile.core.db.dao