+Use this at your own risk. There is a good chance of database inconsistencies, crashes and Deity-knows-what-else.
+
+
+Also, there is no security per se implemented...no authentication, no login, no authorisation, no encryption, HTTP-everywhere etc...well we have HTTPS but you are own your own with the key management. We can integrate with YubiHSM but this is on going (and theoretically any PKCS#11 interface)...theoretically...someone needs to impement (and test!) this. Anyway, you get the idea.
+
+
+
A Bit of History
+Or, why GA10? There have been various iterations, these are listed below:
+
+
+
+
+
+
A1,A2,A3
Early experiments. Written in Javascript with lots of pain regarding reactive, functional programming
+
+
+
+
A4
First version that actually worked, also written in Javascript. Not very functional but there existed a trust agent for quoting
+
A5,A6
First versions in python 2 and some of the code here ended up in A7. Some parts of A5 and A6 integrated with OpenStack's workflow and workload manager APIs - which worked as long as you didn't update OpenStack as APIs changed randomly betweent versions.
+
+
A7
First properly working attestation server in a very traditional manner (cf: OpenAttestation etc). Written in a mix of python2 and python3. Backend utilised mongodb and assumed the TA talked directly to the tpm2_tools on the client. UI written using python flask. Integrated with OpenStack via a client which was a MITM/hack/kludge to access OpenStack's message bus. This version was demonstrated at ETSI SecurityWeek in 2018 and 2019. Contained a lot of technical debt which made integration hard in some cases.
+
+
A8.1
Was an attempt to write everything in Erlang.
+
A8.2
Was an attempt to do the same in Python with threads, proceses, MQTT etc.
+
+
A9
Was a experiment to use the ELKS analytics stack and the ELKS UI. Was demonstrated in January 2020 for the first time and actively developed for about 6 months until we needed to support new features. Much of this work reappears as plugins and data integration (as attesation apps in A10) into ELKS and ELKS-based tools such as Nokia's NetGuard.
+
+
A10
2019-2023! Much more compliant with IEFT RATS in its data structures. Has a proper protocol backend which takes care of layer 7 and layer 6 of the attestation protocols so we can theoretically support any RoT/auditing system, eg: HSM, UEFI, TPM2.0, TPM1.2 etc, we can even integrate with other attestation engines' trust agents such as KeyLime, OpenAttestation, Go-Attestation etc. Libraries are much better written with a much more consistent API. UI and interfaces are separate components built on top of libraries. The whole thing is designed to integrate with MQTT, logstash, ELKS, whatever AI/ML analytics and the forensics system that is currently under development. Lots of cool features. Supports the notion of attestation applications for extensibility making integration with other systems such as Edge/NFV MANO very quick and easy.
+
+
GA10
Today! Even more compliant with IEFT RATS in its data structures and an improved protocol backend which takes care of layer 7 and layer 6 of the attestation protocols. All the cool stuff of A10 but now written in GO. Seriously strong typing is so important....Reworked UI, reworked REST API and reworked data structures. Oh so much better. AND, Go has a really nice cross compiler: arm, arm64, i386, amd64, ppc, and then Linux, Windows, Solaris, AIX and Plan 9 from Bell Labs. Also Go makes self-contained binaries so the trust agent is a single binary which makes distribution trivial and the whole server engine itself just needs the binary and the config file :-)
+
+
+
+
+{{end}}
\ No newline at end of file
diff --git a/ga10/interfaces/webui/templates/attest.html b/ga10/interfaces/webui/templates/attest.html
new file mode 100644
index 00000000..aa0706db
--- /dev/null
+++ b/ga10/interfaces/webui/templates/attest.html
@@ -0,0 +1,88 @@
+{{define "content"}}
+
Attest
+
+
+
+
+
+
+
+
+{{end}}
\ No newline at end of file
diff --git a/ga10/interfaces/webui/templates/attestsummary.html b/ga10/interfaces/webui/templates/attestsummary.html
new file mode 100644
index 00000000..324be8ea
--- /dev/null
+++ b/ga10/interfaces/webui/templates/attestsummary.html
@@ -0,0 +1,48 @@
+{{define "content"}}
+
There is not a lot of help in this version either...
+
sorry.
+
+
+{{end}}
\ No newline at end of file
diff --git a/ga10/interfaces/webui/templates/home.html b/ga10/interfaces/webui/templates/home.html
new file mode 100644
index 00000000..61e05f75
--- /dev/null
+++ b/ga10/interfaces/webui/templates/home.html
@@ -0,0 +1,157 @@
+{{define "content"}}
+
+{{end}}
+
+
diff --git a/ga10/logging/logging.go b/ga10/logging/logging.go
new file mode 100644
index 00000000..ae10ae94
--- /dev/null
+++ b/ga10/logging/logging.go
@@ -0,0 +1,74 @@
+package logging
+
+import(
+ "log"
+ "fmt"
+ "context"
+ "sync"
+ "os"
+
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/structures"
+ "a10/configuration"
+)
+
+
+func MakeLogEntry(ch string, op string, itemid string, itemtype string, message string){
+
+ logentry := structures.LogEntry{ utilities.MakeID(), utilities.MakeTimestamp(), ch, op, itemid, itemtype, message, []byte{} }
+
+ if digest,err := utilities.MakeSHA256(logentry); err != nil {
+ log.Printf("WARNING: Encoding log entry failed with %w. Entry not made.",err)
+ } else {
+ logentry.Hash = digest
+
+ // these can be run in parallel. We don't care about return results
+ var wg sync.WaitGroup
+
+ wg.Add(3)
+
+ go writeToDB(&wg,logentry)
+ go writeToMessaging(&wg,logentry)
+ go writeToLogfile(&wg,logentry)
+
+ wg.Wait()
+ }
+
+}
+
+
+func writeToDB(wgrp *sync.WaitGroup, l structures.LogEntry){
+ _,_ = datalayer.DB.Collection("log").InsertOne(context.TODO(), l)
+
+ wgrp.Done()
+}
+
+
+func writeToMessaging(wgrp *sync.WaitGroup, l structures.LogEntry){
+ ch := fmt.Sprintf("AS/%s",l.Channel)
+ _ = datalayer.MESSAGING.Publish(ch,0,false,makeCSVText(l))
+
+ wgrp.Done()
+}
+
+
+func writeToLogfile(wgrp *sync.WaitGroup, l structures.LogEntry){
+ f,err := os.OpenFile(configuration.ConfigData.Logging.LogFileLocation,
+ os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ if err != nil {
+ log.Println("Error opening log file ",configuration.ConfigData.Logging.LogFileLocation)
+ }
+ defer f.Close()
+
+ if _, err := f.WriteString(makeCSVText(l)); err != nil {
+ log.Println("Error writring to log file ",configuration.ConfigData.Logging.LogFileLocation)
+ }
+
+ wgrp.Done()
+}
+
+
+func makeCSVText(l structures.LogEntry) string {
+ return fmt.Sprintf("%s,%v,%s,%s,%s,%s,%q\n",l.ItemID, l.Timestamp, l.Channel, l.Operation, l.RefID, l.RefType, l.Message)
+}
\ No newline at end of file
diff --git a/ga10/operations/attestation.go b/ga10/operations/attestation.go
new file mode 100644
index 00000000..b4becb08
--- /dev/null
+++ b/ga10/operations/attestation.go
@@ -0,0 +1,98 @@
+package operations
+
+import(
+ "fmt"
+
+ "a10/structures"
+ "a10/utilities"
+)
+
+type hashablePartClaim struct {
+ BodyType string
+ Header structures.ClaimHeader
+ Body map[string]interface{}
+}
+
+
+
+//This function calls the attestation mechanism that eventually calls the TA on some client
+// ItemIDs for Element, Policy and String are provided in eid, pid and sid
+// A map of additional parameters in aps
+func Attest(element structures.Element, policy structures.Policy, session structures.Session, aps map[string]interface{}) (string, error) {
+
+ var body map[string]interface{} = make(map[string]interface{})
+
+ /* 1. create a protocol object
+ 2. set the timer start
+ 3. dispatch control over to the protocol object
+ 4. stop timer
+ 5. create claim
+ 6. store claim
+ 7. add claim to the session
+ 8. return
+ */
+
+ // Step 1 ******************************************************
+
+ protocol := element.Protocol
+ protocolObject,_ := GetProtocol(protocol)
+
+ // TODO: Need to check that the protocol exists here otherwise the acall below fails with a panic
+
+ // Step 2 ******************************************************
+
+ claimTimerStart := utilities.MakeTimestamp()
+
+ // Step 3 ******************************************************
+
+ aCALL := protocolObject.CallFunction
+ returnedBody,bodytype := aCALL( element, policy, session, aps )
+
+ if bodytype == "*ERROR" {
+ body["ERROR"] = returnedBody
+ } else {
+ body = returnedBody
+ }
+
+ // Step 4 ******************************************************
+
+ claimTimerFinish := utilities.MakeTimestamp()
+
+ // Step 5 ******************************************************
+ // NB: we have body and bodytype from above
+
+ timing := structures.Timing{ claimTimerStart, claimTimerFinish }
+ header := structures.ClaimHeader{element, policy, session, timing}
+ footer,_ := hashAndSignClaim(hashablePartClaim{ bodytype, header, body })
+
+ c := structures.Claim{ "", bodytype, header, body, footer }
+
+ // Step 6
+ sid := session.ItemID
+
+ cid,err := AddClaim( c ) // cid a string with the claim ID
+ if err != nil {
+ return "",fmt.Errorf("Error adding claim, session %v might still be open: %w",sid,err)
+ }
+
+ fmt.Printf("Added claim %v\n",cid)
+
+ // if AddClaim fails, we have a bigger problem, see above note
+ // If there is an error here, then we need a new claim type of "internal error"
+ // but of course, if we can't add a claim then we can not add an internal error claim ---just dump something on the log!
+ // plus specific logging to handle this - might denote on seriously fscked TA at the other end?
+ // This is kind of the same thing that happens if there protocol object ins't found
+
+ // Step 7
+
+ sderr := AddClaimToSession(sid,cid)
+ if sderr != nil {
+ return "",fmt.Errorf("Error adding claim %v to session %v. Claim added, session may be still open: %w",cid,sid,err)
+ }
+
+ // Step 8
+
+ return cid,nil
+}
+
+
diff --git a/ga10/operations/claims.go b/ga10/operations/claims.go
new file mode 100644
index 00000000..ec8897af
--- /dev/null
+++ b/ga10/operations/claims.go
@@ -0,0 +1,97 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "fmt"
+ "context"
+
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func isClaimError(c structures.Claim) bool {
+ return c.BodyType == structures.CLAIMERROR
+}
+
+func CountClaims() int64 {
+ return datalayer.Count("claims")
+}
+
+// AddElement is a function that takes and element structure that has a BLANK Itemid field (empty string) and stores that
+// element in some database
+// Successful storage returns the itemid for that element and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func AddClaim(e structures.Claim) (string, error) {
+ if (e.ItemID != "") {
+ return "", ErrorItemIDIncluded
+ } else {
+ e.ItemID = utilities.MakeID()
+ _,dberr := datalayer.DB.Collection("claims").InsertOne(context.TODO(), e)
+ logging.MakeLogEntry("C","add",e.ItemID,"claim","")
+ return e.ItemID, dberr
+ }
+}
+
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetClaims() ([]structures.ID, error) {
+ var claims []structures.ID
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1}})
+ dbcursor,_ := datalayer.DB.Collection("claims").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&claims)
+
+ return claims, dbcursorerror
+}
+
+func GetClaimsAll() ([]structures.Claim, error) {
+ var claims []structures.Claim
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetSort(bson.D{{"header.timing.requested",-1}})
+
+ dbcursor,_ := datalayer.DB.Collection("claims").Find(context.TODO(), filter, options)
+ dbcursorerror := dbcursor.All(context.TODO(),&claims)
+
+ return claims, dbcursorerror
+}
+
+func GetClaimsByElementID(eid string, maximumAmount int64) ([]structures.Claim, error) {
+ var claims []structures.Claim
+
+ if maximumAmount<1 {
+ return claims, fmt.Errorf("Maximum amount must be a positive number")
+ }
+
+ filter := bson.D{ {} } // Get all // TODO search for itemIDs only
+ options := options.Find().SetSort(bson.D{{"header.timing.requested",-1}}).SetLimit(maximumAmount)
+ dbcursor,_ := datalayer.DB.Collection("claims").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&claims)
+
+ return claims, dbcursorerror
+}
+
+
+// GetElementByItemID returns a single element or error
+func GetClaimByItemID(itemid string) (structures.Claim, error) {
+ var claim structures.Claim
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("claims").FindOne(context.TODO(), filter).Decode(&claim)
+
+ if claim.ItemID == "" {
+ return structures.Claim{}, ErrorItemNotFound
+ } else {
+ return claim, dbcursorerror
+ }
+}
+
diff --git a/ga10/operations/elements.go b/ga10/operations/elements.go
new file mode 100644
index 00000000..572b4b5d
--- /dev/null
+++ b/ga10/operations/elements.go
@@ -0,0 +1,122 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "context"
+
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+
+func CountElements() int64 {
+ return datalayer.Count("elements")
+}
+
+// AddElement is a function that takes and element structure that has a BLANK Itemid field (empty string) and stores that
+// element in some database
+// Successful storage returns the itemid for that element and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func AddElement(e structures.Element) (string, error) {
+ if (e.ItemID != "") {
+ return "", ErrorItemIDIncluded
+ } else {
+ e.ItemID = utilities.MakeID()
+ _,dberr := datalayer.DB.Collection("elements").InsertOne(context.TODO(), e)
+ logging.MakeLogEntry("IM","add",e.ItemID,"element","")
+
+ return e.ItemID, dberr
+ }
+}
+
+// UpdateElement requires the complete structure, that is, it replaces the structure with the given itemid
+func UpdateElement(replacement structures.Element) error {
+ filter := bson.D{ {"itemid", replacement.ItemID} }
+ updateresult,err := datalayer.DB.Collection("elements").ReplaceOne(context.TODO(), filter, replacement)
+
+ if err != nil {
+ return err
+ } else if updateresult.MatchedCount != 1 || updateresult.ModifiedCount != 1 {
+ return ErrorItemNotUpdated
+ } else {
+ logging.MakeLogEntry("IM","update",replacement.ItemID,"element","")
+ return nil
+ }
+}
+
+// DeleteElement takes an itemid as input
+func DeleteElement(itemid string) error {
+ filter := bson.D{{"itemid",itemid}}
+ deleteresult, err := datalayer.DB.Collection("elements").DeleteOne(context.TODO(), filter)
+
+ if err != nil {
+ return err
+ } else if deleteresult.DeletedCount != 1 {
+ return ErrorItemNotDeleted
+ } else {
+ logging.MakeLogEntry("IM","delete",itemid,"element","")
+ return nil
+ }
+
+}
+
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetElements() ([]structures.ID, error) {
+ var elems []structures.ID
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1}}).SetSort(bson.D{{"name",1}})
+ dbcursor,_ := datalayer.DB.Collection("elements").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+// GetElementsAll returns a map of every element. If this structure is an empty map then no elements exist in the database.
+// This is only meant to be used sparingly, eg: when quering the UI to reduce load on the database
+func GetElementsAll() ([]structures.Element, error) {
+ var elems []structures.Element
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetSort(bson.D{{"name",1}})
+ dbcursor,_ := datalayer.DB.Collection("elements").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+
+ return elems, dbcursorerror
+}
+
+// GetElementByItemID returns a single element or error
+func GetElementByItemID(itemid string) (structures.Element, error) {
+ var elem structures.Element
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("elements").FindOne(context.TODO(), filter).Decode(&elem)
+
+ if elem.ItemID == "" {
+ return structures.Element{}, ErrorItemNotFound
+ } else {
+ return elem, dbcursorerror
+ }
+}
+
+// GetElementByName returns all elements with the given name or an empty list.
+func GetElementsByName(name string) ([]structures.Element, error) {
+ var elems []structures.Element
+
+ // discard the error, the dbcursor.All will deal with that case
+ filter := bson.D{ {"name", name} }
+ dbcursor,_ := datalayer.DB.Collection("elements").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
\ No newline at end of file
diff --git a/ga10/operations/expectedValues.go b/ga10/operations/expectedValues.go
new file mode 100644
index 00000000..4f6e110b
--- /dev/null
+++ b/ga10/operations/expectedValues.go
@@ -0,0 +1,170 @@
+// This package contains the operations for managing ExpectedValues in a system
+// It provides
+package operations
+
+import(
+ "context"
+
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountExpectedValues() int64 {
+ return datalayer.Count("expectedvalue")
+}
+
+// AddExpectedValue is a function that takes and ExpectedValue structure that has a BLANK Itemid field (empty string) and stores that
+// ExpectedValue in some database
+// Successful storage returns the itemid for that ExpectedValue and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func AddExpectedValue(e structures.ExpectedValue) (string, error) {
+ if (e.ItemID != "") {
+ return "", ErrorItemIDIncluded
+ } else {
+ e.ItemID = utilities.MakeID()
+ _,dberr := datalayer.DB.Collection("expectedvalues").InsertOne(context.TODO(), e)
+ logging.MakeLogEntry("IM","add",e.ItemID,"expectedvalue","")
+
+ return e.ItemID, dberr
+ }
+}
+
+// UpdateExpectedValue requires the complete structure, that is, it replaces the structure with the given itemid
+func UpdateExpectedValue(replacement structures.ExpectedValue) error {
+ filter := bson.D{ {"itemid", replacement.ItemID} }
+ updateresult,err := datalayer.DB.Collection("expectedvalues").ReplaceOne(context.TODO(), filter, replacement)
+
+ if err != nil {
+ return err
+ } else if updateresult.MatchedCount != 1 || updateresult.ModifiedCount != 1 {
+ return ErrorItemNotUpdated
+ } else {
+ logging.MakeLogEntry("IM","update",replacement.ItemID,"expectedvalue","")
+
+ return nil
+ }
+
+}
+
+// DeleteExpectedValue takes an itemid as input
+func DeleteExpectedValue(itemid string) error {
+ filter := bson.D{{"itemid",itemid}}
+ deleteresult, err := datalayer.DB.Collection("expectedvalues").DeleteOne(context.TODO(), filter)
+
+ if err != nil {
+ return err
+ } else if deleteresult.DeletedCount != 1 {
+ return ErrorItemNotDeleted
+ } else {
+ logging.MakeLogEntry("IM","delete",itemid,"expectedvalue","")
+
+ return nil
+ }
+
+}
+
+
+// GetExpectedValues returns a map of itemids in the ID structure. If this structure is an empty map then no ExpectedValues exist in the database.
+func GetExpectedValues() ([]structures.ID, error) {
+ var elems []structures.ID
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1}})
+ dbcursor,_ := datalayer.DB.Collection("expectedvalues").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+
+func GetExpectedValuesAll() ([]structures.ExpectedValue, error) {
+ var elems []structures.ExpectedValue
+
+ filter := bson.D{ {} } // Get all
+ dbcursor,_ := datalayer.DB.Collection("expectedvalues").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+// GetExpectedValueByItemID returns a single ExpectedValue or error
+func GetExpectedValueByItemID(itemid string) (structures.ExpectedValue, error) {
+ var elem structures.ExpectedValue
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("expectedvalues").FindOne(context.TODO(), filter).Decode(&elem)
+
+ if elem.ItemID == "" {
+ return structures.ExpectedValue{}, ErrorItemNotFound
+ } else {
+ return elem, dbcursorerror
+ }
+}
+
+// GetExpectedValueByName returns all ExpectedValues with the given name or an empty list.
+func GetExpectedValuesByName(name string) ([]structures.ExpectedValue, error) {
+ var elems []structures.ExpectedValue
+
+ // discard the error, the dbcursor.All will deal with that case
+ filter := bson.D{ {"name", name} }
+ dbcursor,_ := datalayer.DB.Collection("expectedvalues").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+
+// GetExpectedValueByName returns all ExpectedValues with the given name or an empty list.
+func GetExpectedValuesByPolicy(name string) ([]structures.ExpectedValue, error) {
+ var elems []structures.ExpectedValue
+
+ // discard the error, the dbcursor.All will deal with that case
+ filter := bson.D{ {"policyID", name} }
+ dbcursor,_ := datalayer.DB.Collection("expectedvalues").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+
+// GetExpectedValueByName returns all ExpectedValues with the given name or an empty list.
+func GetExpectedValuesByElement(name string) ([]structures.ExpectedValue, error) {
+ var elems []structures.ExpectedValue
+
+ // discard the error, the dbcursor.All will deal with that case
+ filter := bson.D{ {"elementID", name} }
+ dbcursor,_ := datalayer.DB.Collection("expectedvalues").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+// GetExpectedValueByName returns all ExpectedValues with the given name or an empty list.
+func GetExpectedValueByElementAndPolicy(eid string, pid string) (structures.ExpectedValue, error) {
+ var elem structures.ExpectedValue
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{
+ {"$and",
+ bson.A{
+ bson.D{{"elementID", eid}},
+ bson.D{{"policyID", pid}},
+ },
+ },
+ }
+ dbcursorerror := datalayer.DB.Collection("expectedvalues").FindOne(context.TODO(), filter).Decode(&elem)
+
+ if elem.ItemID == "" {
+ return structures.ExpectedValue{}, ErrorItemNotFound
+ } else {
+ return elem, dbcursorerror
+ }
+}
+
diff --git a/ga10/operations/log.go b/ga10/operations/log.go
new file mode 100644
index 00000000..5ba8b002
--- /dev/null
+++ b/ga10/operations/log.go
@@ -0,0 +1,28 @@
+package operations
+
+import(
+ "context"
+
+ "a10/structures"
+ "a10/datalayer"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountLogEntries() int64 {
+ return datalayer.Count("log")
+}
+
+func GetLogEntries(maximumAmount int64) ([]structures.LogEntry,error) {
+ var logentries []structures.LogEntry
+
+ filter := bson.D{ {} } // Get all
+
+ options := options.Find().SetSort(bson.D{{"timestamp",-1}}).SetLimit(maximumAmount)
+ dbcursor,_ := datalayer.DB.Collection("log").Find(context.TODO(), filter, options)
+ dbcursorerror := dbcursor.All(context.TODO(),&logentries)
+
+ return logentries, dbcursorerror
+}
\ No newline at end of file
diff --git a/ga10/operations/opaqueobjects.go b/ga10/operations/opaqueobjects.go
new file mode 100644
index 00000000..a0463e2d
--- /dev/null
+++ b/ga10/operations/opaqueobjects.go
@@ -0,0 +1,77 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "fmt"
+ "context"
+
+ "a10/structures"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountOpaqueOjects() int64 {
+ return datalayer.Count("hashes")
+}
+
+func AddOpaqueObject(h structures.OpaqueObject) (string, error) {
+ options := options.Update().SetUpsert(true)
+ filter := bson.D{{"value",h.Value}}
+ //update := bson.D{{ "$set", bson.D{{ h }}}}
+ _,dberr := datalayer.DB.Collection("opaqueobjects").UpdateOne(context.TODO(), filter, h, options)
+ msg := fmt.Sprintf("%s,%s",h.Type,h.ShortDescription)
+ logging.MakeLogEntry("IM","add",h.Value,"object",msg)
+ return h.Value, dberr
+
+}
+
+func UpdateOpaqueObject(replacement structures.OpaqueObject) (string, error) {
+ return AddOpaqueObject(replacement)
+}
+
+func DeleteOpaqueObject(v string) error {
+ filter := bson.D{{"value",v}}
+ deleteresult, err := datalayer.DB.Collection("opaqueobjects").DeleteOne(context.TODO(), filter)
+
+ if err != nil {
+ return err
+ } else if deleteresult.DeletedCount != 1 {
+ return ErrorItemNotDeleted
+ } else {
+ logging.MakeLogEntry("IM","delete",v,"object","")
+ return nil
+ }
+}
+
+
+func GetOpaqueObjects() ([]structures.OpaqueObject, error) {
+ var elems []structures.OpaqueObject
+
+ filter := bson.D{ {} } // Get all
+ dbcursor,_ := datalayer.DB.Collection("opaqueobjects").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+
+
+// GetElementByItemID returns a single element or error
+func GetOpaqueObjectByValue(v string) (structures.OpaqueObject, error) {
+ var elem structures.OpaqueObject
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"value", v} }
+ dbcursorerror := datalayer.DB.Collection("opaqueobjects").FindOne(context.TODO(), filter).Decode(&elem)
+
+ if elem.Value == "" {
+ return structures.OpaqueObject{}, ErrorItemNotFound
+ } else {
+ return elem, dbcursorerror
+ }
+}
diff --git a/ga10/operations/operrors.go b/ga10/operations/operrors.go
new file mode 100644
index 00000000..a02a5335
--- /dev/null
+++ b/ga10/operations/operrors.go
@@ -0,0 +1,16 @@
+package operations
+
+import(
+ "errors"
+)
+
+var (
+ ErrorItemIDIncluded = errors.New("ItemID included")
+ ErrorDatabaseError = errors.New("Database Error")
+
+ ErrorItemNotUpdated = errors.New("Item not updated")
+ ErrorItemNotFound = errors.New("Item not found")
+ ErrorItemNotDeleted = errors.New("Element not deleted")
+
+
+)
\ No newline at end of file
diff --git a/ga10/operations/policies.go b/ga10/operations/policies.go
new file mode 100644
index 00000000..14b7346b
--- /dev/null
+++ b/ga10/operations/policies.go
@@ -0,0 +1,122 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "context"
+
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountPolicies() int64 {
+ return datalayer.Count("policies")
+}
+
+// AddPolicy is a function that takes and element structure that has a BLANK Itemid field (empty string) and stores that
+// element in some database
+// Successful storage returns the itemid for that element and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func AddPolicy(p structures.Policy) (string, error) {
+ if (p.ItemID != "") {
+ return "", ErrorItemIDIncluded
+ } else {
+ p.ItemID = utilities.MakeID()
+ _,dberr := datalayer.DB.Collection("policies").InsertOne(context.TODO(), p)
+ logging.MakeLogEntry("IM","add",p.ItemID,"policy","")
+
+ return p.ItemID, dberr
+ }
+}
+
+// UpdateElement requires the complete structure, that is, it replaces the structure with the given itemid
+func UpdatePolicy(replacement structures.Policy) error {
+ filter := bson.D{ {"itemid", replacement.ItemID} }
+ updateresult,err := datalayer.DB.Collection("policies").ReplaceOne(context.TODO(), filter, replacement)
+
+ if err != nil {
+ return err
+ } else if updateresult.MatchedCount != 1 || updateresult.ModifiedCount != 1 {
+ return ErrorItemNotUpdated
+ } else {
+ logging.MakeLogEntry("IM","update",replacement.ItemID,"policy","")
+
+ return nil
+ }
+
+}
+
+// DeleteElement takes an itemid as input
+func DeletePolicy(itemid string) error {
+ filter := bson.D{{"itemid",itemid}}
+ deleteresult, err := datalayer.DB.Collection("policies").DeleteOne(context.TODO(), filter)
+
+ if err != nil {
+ return err
+ } else if deleteresult.DeletedCount != 1 {
+ return ErrorItemNotDeleted
+ } else {
+ logging.MakeLogEntry("IM","delete",itemid,"policy","")
+
+ return nil
+ }
+
+}
+
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetPolicies() ([]structures.ID, error) {
+ var elems []structures.ID
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1}}).SetSort(bson.D{{"name",1}})
+ dbcursor,_ := datalayer.DB.Collection("policies").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+
+func GetPoliciesAll() ([]structures.Policy, error) {
+ var elems []structures.Policy
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetSort(bson.D{{"name",1}})
+ dbcursor,_ := datalayer.DB.Collection("policies").Find(context.TODO(), filter, options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+}
+
+// GetElementByItemID returns a single element or error
+func GetPolicyByItemID(itemid string) (structures.Policy, error) {
+ var pol structures.Policy
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("policies").FindOne(context.TODO(), filter).Decode(&pol)
+
+ if pol.ItemID == "" {
+ return structures.Policy{}, ErrorItemNotFound
+ } else {
+ return pol, dbcursorerror
+ }
+}
+
+// GetElementByName returns all elements with the given name or an empty list.
+func GetPoliciesByName(name string) ([]structures.Policy, error) {
+ var pol []structures.Policy
+
+ // discard the error, the dbcursor.All will deal with that case
+ filter := bson.D{ {"name", name} }
+ dbcursor,_ := datalayer.DB.Collection("policies").Find(context.TODO(), filter)
+ dbcursorerror := dbcursor.All(context.TODO(),&pol)
+
+ return pol, dbcursorerror
+}
\ No newline at end of file
diff --git a/ga10/operations/protocols.go b/ga10/operations/protocols.go
new file mode 100644
index 00000000..91a0cf71
--- /dev/null
+++ b/ga10/operations/protocols.go
@@ -0,0 +1,35 @@
+package operations
+
+import(
+ "fmt"
+ "golang.org/x/exp/maps"
+
+ "a10/structures"
+ "a10/datalayer"
+ "a10/logging"
+)
+
+func CountProtocols() int64 {
+ return datalayer.Count("protocols")
+}
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetProtocols() []structures.Protocol {
+ return maps.Values(datalayer.ProtocolsDatabase)
+}
+
+func GetProtocol(n string) (structures.Protocol, error) {
+ r,exists := datalayer.ProtocolsDatabase[n]
+
+ if (exists) {
+ return r,nil
+ } else {
+ return r,fmt.Errorf("No such protocol")
+ }
+}
+
+func AddProtocol(p structures.Protocol) {
+ k := p.Name
+ datalayer.ProtocolsDatabase[k] = p
+ logging.MakeLogEntry("IM","add","","protocol",k)
+}
\ No newline at end of file
diff --git a/ga10/operations/results.go b/ga10/operations/results.go
new file mode 100644
index 00000000..f61b8921
--- /dev/null
+++ b/ga10/operations/results.go
@@ -0,0 +1,90 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "fmt"
+ "context"
+
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountResults() int64 {
+ return datalayer.Count("results")
+}
+
+// AddElement is a function that takes and element structure that has a BLANK Itemid field (empty string) and stores that
+// element in some database
+// Successful storage returns the itemid for that element and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func AddResult(e structures.Result) (string, error) {
+ if (e.ItemID != "") {
+ return "", ErrorItemIDIncluded
+ } else {
+ e.ItemID = utilities.MakeID()
+ _,dberr := datalayer.DB.Collection("results").InsertOne(context.TODO(), e)
+ logging.MakeLogEntry("R","add",e.ItemID,"result",fmt.Sprintf("%v",e.Result) )
+ return e.ItemID, dberr
+ }
+}
+
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetResults() ([]structures.ID, error) {
+ var results []structures.ID
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1}})
+ dbcursor,_ := datalayer.DB.Collection("results").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&results)
+
+ return results, dbcursorerror
+}
+
+
+func GetResultsAll() ([]structures.Result, error) {
+ var results []structures.Result
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetSort(bson.D{{"verifiedat",-1}})
+ dbcursor,_ := datalayer.DB.Collection("results").Find(context.TODO(), filter, options)
+ dbcursorerror := dbcursor.All(context.TODO(),&results)
+
+ return results, dbcursorerror
+}
+
+
+func GetResultsByElementID(eid string, maximumAmount int64) ([]structures.Result, error) {
+ var Results []structures.Result
+
+ filter := bson.D{ {} } // Get all // TODO search for itemIDs only
+ options := options.Find().SetSort(bson.D{{"verifiedAt",-1}}).SetLimit(maximumAmount)
+ dbcursor,_ := datalayer.DB.Collection("results").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&Results)
+
+ return Results, dbcursorerror
+}
+
+
+// GetElementByItemID returns a single element or error
+func GetResultByItemID(itemid string) (structures.Result, error) {
+ var Result structures.Result
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("results").FindOne(context.TODO(), filter).Decode(&Result)
+
+ if Result.ItemID == "" {
+ return structures.Result{}, ErrorItemNotFound
+ } else {
+ return Result, dbcursorerror
+ }
+}
+
diff --git a/ga10/operations/rules.go b/ga10/operations/rules.go
new file mode 100644
index 00000000..a8e896e3
--- /dev/null
+++ b/ga10/operations/rules.go
@@ -0,0 +1,44 @@
+package operations
+
+import(
+ "errors"
+ "sort"
+ "golang.org/x/exp/maps"
+
+ "a10/structures"
+ "a10/datalayer"
+ "a10/logging"
+)
+
+func CountRules() int64 {
+ return datalayer.Count("rules")
+}
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetRules() []structures.Rule {
+ keys := maps.Keys(datalayer.RulesDatabase)
+ sort.Strings(keys)
+
+ vals := make([]structures.Rule, 0) // empty
+ for _,k := range keys {
+ vals = append(vals,datalayer.RulesDatabase[k])
+ }
+ return vals
+
+}
+
+func GetRule(n string) (structures.Rule, error) {
+ r,exists := datalayer.RulesDatabase[n]
+
+ if (exists) {
+ return r,nil
+ } else {
+ return r,errors.New("No such rule")
+ }
+}
+
+func AddRule(r structures.Rule) {
+ k := r.Name
+ datalayer.RulesDatabase[k] = r
+ logging.MakeLogEntry("IM","add","","rule",k)
+}
\ No newline at end of file
diff --git a/ga10/operations/sessions.go b/ga10/operations/sessions.go
new file mode 100644
index 00000000..249b0d24
--- /dev/null
+++ b/ga10/operations/sessions.go
@@ -0,0 +1,196 @@
+// This package contains the operations for managing elements in a system
+// It provides
+package operations
+
+import(
+ "context"
+ "fmt"
+ "a10/structures"
+ "a10/utilities"
+ "a10/datalayer"
+ "a10/logging"
+ "a10/configuration"
+
+ "go.mongodb.org/mongo-driver/mongo/options"
+ "go.mongodb.org/mongo-driver/bson"
+
+)
+
+func CountSessions() int64 {
+ count, err := datalayer.DB.Collection("sessions").EstimatedDocumentCount(context.TODO())
+ if err != nil {
+ return -1
+ } else {
+ return count
+ }
+}
+
+// AddElement is a function that takes and element structure that has a BLANK Itemid field (empty string) and stores that
+// element in some database
+// Successful storage returns the itemid for that element and a nil error.
+// An error is returned if an item id is given as part of the input structure.
+func OpenSession(msg string) (string, error) {
+ // construct the session object
+ t := structures.SessionTiming{ utilities.MakeTimestamp(), "0" }
+ s := structures.Session{ utilities.MakeID(), t, []string{}, []string{}, msg, structures.SessionFooter{}}
+ // write to database
+ _,dberr := datalayer.DB.Collection("sessions").InsertOne(context.TODO(), s)
+ logging.MakeLogEntry("S","open",s.ItemID,"session",msg)
+
+ return s.ItemID, dberr
+}
+
+
+type hashablePartSession struct {
+ ItemID string
+ Timing structures.SessionTiming
+ ClaimList []string
+ ResultList []string
+ Message string
+}
+
+// We close the session and sign it
+func CloseSession(itemid string) error {
+
+ //Get the session, return error if not found
+ session,err := GetSessionByItemID(itemid)
+ if err != nil {
+ return fmt.Errorf("Element not found %v : %v",itemid,err)
+ }
+
+ //Check if the session isn't already closed
+ if session.Timing.Closed != "0" {
+ return fmt.Errorf("Session already closed %v : %v",itemid,err)
+ }
+
+ //Update the session
+ session.Timing.Closed = utilities.MakeTimestamp()
+
+ // hash and sign the session
+ footer,_ := hashAndSignSession(hashablePartSession{ session.ItemID, session.Timing, session.ClaimList, session.ResultList, session.Message })
+ session.Footer = footer
+
+ //Write to database
+ filter := bson.D{ {"itemid", itemid} }
+ closedSession,err := datalayer.DB.Collection("sessions").ReplaceOne(context.TODO(), filter, session)
+
+ if err != nil {
+ return fmt.Errorf("Database error in close session: %v",err)
+ } else if closedSession.MatchedCount != 1 || closedSession.ModifiedCount != 1 {
+ return fmt.Errorf("Session not updated: %v",err)
+ } else {
+ logging.MakeLogEntry("S","close",itemid,"session","")
+ return nil
+ }
+}
+
+
+
+func AddClaimToSession(sid string, cid string) error {
+ //Get the session, return error if not found
+ session,err := GetSessionByItemID(sid)
+ if err != nil {
+ return fmt.Errorf("Element not found %v : %v",sid,err)
+ }
+
+ //ensure that the claim exists
+ _,err = GetClaimByItemID(cid)
+ if err != nil {
+ return fmt.Errorf("Claim %v (for session) not found %v : %v",cid,sid,err)
+ }
+
+ //Update the session
+ session.ClaimList = append(session.ClaimList, cid)
+
+ //Write to database
+ filter := bson.D{ {"itemid", sid} }
+ updatedsession,err := datalayer.DB.Collection("sessions").ReplaceOne(context.TODO(), filter, session)
+
+ if err != nil {
+ return fmt.Errorf("Database error in add claim to session: %w",err)
+ } else if updatedsession.MatchedCount != 1 || updatedsession.ModifiedCount != 1 {
+ return fmt.Errorf("Session not updated: %w",err)
+ } else {
+ if configuration.ConfigData.Logging.SessionUpdateLogging == true {
+ logging.MakeLogEntry("S","update",sid,"session",fmt.Sprintf("claim,%s",cid))
+ }
+ return nil
+ }
+}
+
+
+func AddResultToSession(sid string, rid string) error {
+ //Get the session, return error if not found
+ session,err := GetSessionByItemID(sid)
+ if err != nil {
+ return fmt.Errorf("Element not found %v : %v",sid,err)
+ }
+
+ //ensure that the claim exists
+ _,err = GetResultByItemID(rid)
+ if err != nil {
+ return fmt.Errorf("Result %v (for session) not found %v : %v",rid,sid,err)
+ }
+
+ //Update the session
+ session.ResultList = append(session.ResultList, rid)
+
+ //Write to database
+ filter := bson.D{ {"itemid", sid} }
+ updatedsession,err := datalayer.DB.Collection("sessions").ReplaceOne(context.TODO(), filter, session)
+
+ if err != nil {
+ return fmt.Errorf("Database returned an error %w",err)
+ } else if updatedsession.MatchedCount != 1 || updatedsession.ModifiedCount != 1 {
+ return fmt.Errorf("Session not updated. Error if any is %w",err)
+ } else {
+ if configuration.ConfigData.Logging.SessionUpdateLogging == true {
+ logging.MakeLogEntry("S","update",sid,"session",fmt.Sprintf("result,%s",rid))
+ }
+ return nil
+ }
+}
+
+
+
+// GetElementByItemID returns a single element or error
+func GetSessionByItemID(itemid string) (structures.Session, error) {
+ var elem structures.Session
+
+ // discard the cursor, it will be an empty entry if nothing exists
+ filter := bson.D{ {"itemid", itemid} }
+ dbcursorerror := datalayer.DB.Collection("sessions").FindOne(context.TODO(), filter).Decode(&elem)
+
+ if elem.ItemID == "" {
+ return structures.Session{}, ErrorItemNotFound
+ } else {
+ return elem, dbcursorerror
+ }
+}
+
+
+// GetElements returns a map of itemids in the ID structure. If this structure is an empty map then no elements exist in the database.
+func GetSessions() ([]structures.SessionSummary, error) {
+ var elems []structures.SessionSummary
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetProjection(bson.D{{"itemid",1},{"timing.opened",1},{"timing.closed",1}})
+ dbcursor,_ := datalayer.DB.Collection("sessions").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+
+}
+
+func GetSessionsAll() ([]structures.Session, error) {
+ var elems []structures.Session
+
+ filter := bson.D{ {} } // Get all
+ options := options.Find().SetSort(bson.D{{"timing.opened",-1}})
+
+ dbcursor,_ := datalayer.DB.Collection("sessions").Find(context.TODO(), filter,options)
+ dbcursorerror := dbcursor.All(context.TODO(),&elems)
+
+ return elems, dbcursorerror
+
+}
\ No newline at end of file
diff --git a/ga10/operations/signingFunctions.go b/ga10/operations/signingFunctions.go
new file mode 100644
index 00000000..9730107e
--- /dev/null
+++ b/ga10/operations/signingFunctions.go
@@ -0,0 +1,79 @@
+package operations
+
+import(
+ "fmt"
+
+ "crypto"
+ "crypto/rsa"
+ "crypto/rand"
+
+ "a10/structures"
+ "a10/utilities"
+)
+
+var publickey *rsa.PublicKey
+var privatekey *rsa.PrivateKey
+
+func init() {
+ fmt.Printf("generating private, public key pair for claim signing - just for this session so no chance to verify later. THese keys MUST be external\n")
+
+ privatekey,_ = rsa.GenerateKey(rand.Reader, 2048)
+ publickey = &privatekey.PublicKey
+}
+
+
+
+func hashAndSignClaim(h hashablePartClaim) (structures.ClaimFooter,error) {
+ digest,err := utilities.MakeSHA256(h)
+ if err != nil {
+ return structures.ClaimFooter{ []byte{}, []byte{} }, fmt.Errorf("hashAndSignfailed with %v",err)
+ }
+
+ signature, _ := rsa.SignPSS(rand.Reader, privatekey, crypto.SHA256, digest, nil)
+
+ err = rsa.VerifyPSS(publickey, crypto.SHA256, digest, signature, nil)
+ if err!=nil {
+ return structures.ClaimFooter{ []byte{}, []byte{} }, fmt.Errorf("Verification of hashAndSignfailed with %v",err)
+ }
+
+ return structures.ClaimFooter{ digest, signature }, nil
+}
+
+
+
+
+
+func hashAndSignResult(h hashablePartResult) (structures.ResultFooter,error) {
+ digest,err := utilities.MakeSHA256(h)
+ if err != nil {
+ return structures.ResultFooter{ []byte{}, []byte{} }, fmt.Errorf("hashAndSignfailed with %v",err)
+ }
+
+ signature, _ := rsa.SignPSS(rand.Reader, privatekey, crypto.SHA256, digest, nil)
+
+ err = rsa.VerifyPSS(publickey, crypto.SHA256, digest, signature, nil)
+ if err!=nil {
+ return structures.ResultFooter{ []byte{}, []byte{} }, fmt.Errorf("Verification of hashAndSignfailed with %v",err)
+ }
+
+ return structures.ResultFooter{ digest, signature }, nil
+}
+
+
+
+
+func hashAndSignSession(h hashablePartSession) (structures.SessionFooter,error) {
+ digest,err := utilities.MakeSHA256(h)
+ if err != nil {
+ return structures.SessionFooter{ []byte{}, []byte{} }, fmt.Errorf("hashAndSignfailed with %v",err)
+ }
+
+ signature, _ := rsa.SignPSS(rand.Reader, privatekey, crypto.SHA256, digest, nil)
+
+ err = rsa.VerifyPSS(publickey, crypto.SHA256, digest, signature, nil)
+ if err!=nil {
+ return structures.SessionFooter{ []byte{}, []byte{} }, fmt.Errorf("Verification of hashAndSignfailed with %v",err)
+ }
+
+ return structures.SessionFooter{ digest, signature }, nil
+}
\ No newline at end of file
diff --git a/ga10/operations/verification.go b/ga10/operations/verification.go
new file mode 100644
index 00000000..2652457b
--- /dev/null
+++ b/ga10/operations/verification.go
@@ -0,0 +1,137 @@
+package operations
+
+import(
+ "fmt"
+ "reflect"
+
+ "a10/structures"
+ "a10/utilities"
+
+)
+
+type hashablePartResult struct {
+ ClaimID string
+ ClaimFooter structures.ClaimFooter
+ SessionID structures.Session
+ ExpectedValue structures.ExpectedValue
+ Parameters map[string]interface{}
+ Message string
+ RuleName string
+ VerifiedAt structures.Timestamp
+ Result structures.ResultValue
+}
+
+func checkClaimError(claim structures.Claim) (structures.ResultValue, string) {
+ if isClaimError(claim) == true { // function from claims.go
+ return structures.VerifyClaimErrorAttempt,fmt.Sprintf("Attempt to verify a claim error: %v",claim.ItemID)
+ } else {
+ return structures.UnsetResultValue,""
+ }
+}
+
+func checkRuleObjectExists(rule structures.Rule) (structures.ResultValue, string) {
+ if rule.CallFunction == nil {
+ return structures.RuleCallFailure,fmt.Sprintf("Requested rule %v has no call function",rule.Name)
+ } else {
+ return structures.UnsetResultValue,""
+ }
+}
+
+func getEV(claim structures.Claim, rule structures.Rule) (structures.ExpectedValue, error) {
+ fmt.Println("Step 2 - getting EV")
+
+ // if the rule does need an EV, then we get it and return whatever comes back
+ // if err is not nil then there was some error, usualy no EV for that E,P pair
+ // but it could be something worse, eg: datalayer failure, but this is unlikely
+ if rule.NeedsEV == true {
+ e := claim.Header.Element.ItemID
+ p := claim.Header.Policy.ItemID
+
+ ev,err := GetExpectedValueByElementAndPolicy(e,p)
+
+ return ev,err
+ }
+
+ // didn't need and EV, so nothing to report
+ return structures.ExpectedValue{},nil
+}
+
+func Verify(claim structures.Claim, rule structures.Rule, session structures.Session, rps map[string]interface{}) (string, structures.ResultValue, error) {
+
+ // these are default values and shouldn't occur in reality...
+ var returnedRV structures.ResultValue = structures.UnsetResultValue
+ var returnedMSG string = "Verify not processed"
+
+ // required variables
+ var ev structures.ExpectedValue
+
+
+ // Start ******************************************************
+ // 0
+ returnedRV,returnedMSG = checkClaimError(claim)
+
+ // if we are still unset then we proceed with the verification
+ if returnedRV == structures.UnsetResultValue {
+ fmt.Println("dealing with the ev")
+ ev, err := getEV(claim,rule)
+ if err != nil {
+ fmt.Println("dealing with the ev")
+
+ returnedRV = structures.MissingExpectedValue
+ returnedMSG = fmt.Sprintf("Rule %v requries an expected value for e,p pair %v and %v and one was not found: %w",rule.Name,claim.Header.Element.ItemID,claim.Header.Policy.ItemID,err.Error())
+ } else {
+
+ // Now
+ fmt.Printf("Calling %v with %v %v %v \n",rule.Name, ev, session, rps)
+ fmt.Printf("Calling %v with %v %v %v \n",reflect.TypeOf(rule.Name), reflect.TypeOf(ev), reflect.TypeOf(session), reflect.TypeOf(rps))
+
+ aCALL := rule.CallFunction
+ returnedRV,returnedMSG,err = aCALL( claim, rule.Name, ev, session, rps )
+ if err != nil {
+
+ fmt.Println("Step 3 -err")
+
+ returnedRV = structures.VerifyCallFailure
+ returnedMSG = fmt.Sprintf("Rule %v call failed with message %v and error %w",rule.Name,returnedMSG,err.Error()) // this should be the returnedMSG form the line above
+ }
+ }
+
+ }
+
+
+ // Step 4 ******************************************************
+ fmt.Println("Step 4")
+
+ verifiedAt := utilities.MakeTimestamp()
+
+ // Step 5 ******************************************************
+
+ footer,_ := hashAndSignResult(hashablePartResult{ claim.ItemID, claim.Footer, session, ev, rps, returnedMSG, rule.Name, verifiedAt, returnedRV })
+ r := structures.Result{ "", claim.ItemID, claim.Footer, session, ev, rps, returnedMSG, rule.Name, verifiedAt, returnedRV, footer }
+
+ // Step 6 ******************************************************
+ // This actually returns and error back which should be handled by the caller
+
+ sid := session.ItemID
+
+ rid,err := AddResult( r ) // cid a string with the claim ID
+ if err != nil {
+ return "",structures.NoResult,fmt.Errorf("Error adding result, session %v might still be open: %w",sid,err)
+ }
+
+ // Step 7 ******************************************************
+ // This actually returns and error back which should be handled by the caller
+
+ sderr := AddResultToSession(sid,rid)
+ if sderr != nil {
+ return rid,returnedRV,fmt.Errorf("Error adding result %v to session %v. Claim added, session may be still open: %w",rid,sid,err)
+ }
+
+ // Step 8 ******************************************************
+
+ return rid,returnedRV,nil
+}
+
+
+
+
diff --git a/ga10/otherconfigfiles/local.yaml b/ga10/otherconfigfiles/local.yaml
new file mode 100644
index 00000000..abd7220b
--- /dev/null
+++ b/ga10/otherconfigfiles/local.yaml
@@ -0,0 +1,32 @@
+#Some general naming
+system:
+ name: ASVR_GO_1
+
+#MongoDB Configuration
+database:
+ connection: mongodb://127.0.0.1:27017
+ name: localasvr
+
+#MQTT Configuration
+messaging:
+ broker: 127.0.0.1
+ port: 1883
+ clientid: ASVR_GO_1_LOCAL
+
+#REST Interface Configuration
+rest:
+ port: 8520
+ crt: temporary.crt
+ key: temporary.key
+ usehttp: true
+
+#Web Interface Configuration
+web:
+ port: 8540
+ crt: temporary.crt
+ key: temporary.key
+ usehttp: true
+
+#Log file
+logfile:
+ location: /tmp/ga10.log
diff --git a/ga10/otherconfigfiles/nconfig.yaml b/ga10/otherconfigfiles/nconfig.yaml
new file mode 100644
index 00000000..0bf23a51
--- /dev/null
+++ b/ga10/otherconfigfiles/nconfig.yaml
@@ -0,0 +1,32 @@
+#Some general naming
+system:
+ name: ASVR_GO_1
+
+#MongoDB Configuration
+database:
+ connection: mongodb://10.144.176.154:27017
+ name: attestation2
+
+#MQTT Configuration
+messaging:
+ broker: 10.144.176.154
+ port: 1883
+ clientid: ASVR_GO_1
+
+#REST Interface Configuration
+rest:
+ port: 8520
+ crt: temporary.crt
+ key: temporary.key
+ usehttp: true
+
+#Web Interface Configuration
+web:
+ port: 8540
+ crt: temporary.crt
+ key: temporary.key
+ usehttp: true
+
+#Log file
+logfile:
+ location: /tmp/ga10.log
diff --git a/ga10/protocols/a10httprestv2/public.go b/ga10/protocols/a10httprestv2/public.go
new file mode 100644
index 00000000..07125fee
--- /dev/null
+++ b/ga10/protocols/a10httprestv2/public.go
@@ -0,0 +1,131 @@
+package a10httprestv2
+
+import(
+ "fmt"
+ "net/http"
+ "encoding/json"
+ "io/ioutil"
+ "bytes"
+ "crypto/rand"
+
+ "a10/structures"
+)
+
+const nonceSize int = 24
+
+func Registration() (structures.Protocol) {
+ intents := []string{"tpm2/pcrs","tpm2/quote","uefi/eventlog","ima/log","txt/log"}
+
+ return structures.Protocol{"A10HTTPRESTv2","HTTP protcol for Go based trust agents",Call,intents}
+}
+
+
+// THis is the function that is called by operations.attestation --- this is the entry point to the actual protocol part.
+// It returns a "json" structure and a string with the body type.
+// If requestFromTA returns and error, then it is encoded here and returned.
+// The body type is *ERROR in these situations and the body should have a field "error":
+func Call(e structures.Element, p structures.Policy, s structures.Session, aps map[string]interface{}) (map[string]interface{}, string) {
+ rtn, err :=requestFromTA(e,p,s,aps)
+
+ if err != nil {
+ //rtn["error"] = structures.ClaimError{ "error", err.Error() }
+ rtn["error"] = err.Error()
+
+ return rtn,structures.CLAIMERROR
+ } else {
+ return rtn,p.Intent
+ }
+}
+
+func mergeMaps(m1 map[string]interface{}, m2 map[string]interface{}) map[string]interface{} {
+ merged := make(map[string]interface{})
+ for k, v := range m1 {
+ merged[k] = v
+ }
+ for key, value := range m2 {
+ merged[key] = value
+ }
+ return merged
+}
+
+//This function performs the actual interaction with the TA
+//This will be highly specific to the actual protocol and its implemented intents
+func requestFromTA(e structures.Element, p structures.Policy, s structures.Session, aps map[string]interface{}) (map[string]interface{}, error) {
+
+ var empty map[string]interface{} = make(map[string]interface{}) // this is an *instantiated* empty map used for error situations
+ var bodymap map[string]interface{} // this is used to store the result of the final unmarshalling of the body received from the TA
+
+ // Parameters
+ //
+ // Some come from the element itself, eg: UEFI.eventlog
+ // Then those supplied by the policy and finally the additional parameters
+ // Only certain intents supply parameters and these are dealt with on a case by case basis here
+ //
+ // First we construct "ips" which is the intial set of parameters
+ //
+ // For sanity reasons (and Go's strong typing, the parameters is a plain key,value list)
+ var ips map[string]interface{} = make(map[string]interface{})
+
+ // always supply which device to use
+
+ // for specific intents for the a10httprestv2
+ if p.Intent=="tpm2/pcrs" {
+ ips["tpm2/device"] = (e.TPM2).Device
+ }
+
+ if p.Intent=="tpm2/quote" {
+ ips["tpm2/device"] = (e.TPM2).Device
+ ips["tpm2/akhandle"] = (e.TPM2).AK.Handle
+ nce := make([]byte,nonceSize)
+ _, _ = rand.Read(nce)
+ ips["tpm2/nonce"] = nce
+ }
+
+ if p.Intent=="uefi/eventlog" {
+ ips["uefi/eventlog"] = (e.UEFI).Eventlog
+ }
+
+ if p.Intent=="ima/asciilog" {
+ ips["ima/ASCIIlog"] = (e.IMA).ASCIILog
+ }
+
+ if p.Intent=="txt/log" {
+ ips["ima/log"] = (e.TXT).Log
+ }
+
+ // merge ips with policy parameters. The policy parameters take precidence
+
+ pps := mergeMaps(ips,p.Parameters)
+ cps := mergeMaps(pps,aps)
+
+ // Construct the call
+
+ postbody,err := json.Marshal(cps)
+ if err != nil {
+ return empty,fmt.Errorf("JSON Unmarshalling failed: %w",err)
+ }
+
+ url := e.Endpoint+"/"+p.Intent
+ req,err := http.NewRequest("POST", url, bytes.NewBuffer(postbody))
+ req.Header.Set("Content-Type","application/json")
+ client := &http.Client{}
+ resp,err := client.Do(req)
+
+ if err!=nil {
+ return empty,err // err will be the error from http.client.Do
+ }
+ defer resp.Body.Close()
+
+ taResponse, _ := ioutil.ReadAll(resp.Body)
+ err = json.Unmarshal(taResponse,&bodymap)
+
+ if err != nil {
+ return empty,fmt.Errorf("JSON Unmarshalling reponse from TA: %w",err)
+ }
+
+ if resp.Status != "200 OK" { // is it always 200 ? This might cause issues later if the TA reponds otherwise!
+ return bodymap,fmt.Errorf("TA reports error %v with response %v",resp.Status,taResponse)
+ }
+
+ return bodymap,nil
+}
diff --git a/ga10/protocols/nullprotocol/public.go b/ga10/protocols/nullprotocol/public.go
new file mode 100644
index 00000000..6a28aed6
--- /dev/null
+++ b/ga10/protocols/nullprotocol/public.go
@@ -0,0 +1,41 @@
+package nullprotocol
+
+import(
+ "fmt"
+ "log"
+
+ "a10/structures"
+)
+
+
+func Registration() (structures.Protocol) {
+ intents := []string{"null/good","null/error"}
+
+ return structures.Protocol{"A10NULLPROTOCOL","Testing protocol, always returns a test claim",Call, intents}
+}
+
+func Call(e structures.Element, p structures.Policy, s structures.Session, cps map[string]interface{}) (map[string]interface{}, string) {
+
+ // Create a test body
+
+ rtn := map[string]interface{}{
+ "foo":"bar",
+ "calling": fmt.Sprintf("with protocol %v I would send an intent to %v",e.Protocol,p.Intent),
+ "aNumber": 42,
+ }
+
+ // Check if the policy intent was null/null, if so then return with the bodytype being set to null/test
+ // or error if the above is false.
+ //
+ // Claim bodytype should be set to error and a ClaimError structure returned in an error field
+
+ if p.Intent=="null/null" {
+ log.Println(" null call worked ")
+ rtn["worked"] = true
+ return rtn,"null/test"
+ } else {
+ log.Println(" null call bad error ")
+ rtn["error"] = "Error here"
+ return rtn,structures.CLAIMERROR
+ }
+}
\ No newline at end of file
diff --git a/ga10/protocols/registerProtocols.go b/ga10/protocols/registerProtocols.go
new file mode 100644
index 00000000..b520efa1
--- /dev/null
+++ b/ga10/protocols/registerProtocols.go
@@ -0,0 +1,16 @@
+package protocols
+
+import (
+ "a10/operations"
+
+ "a10/protocols/a10httprestv2"
+ "a10/protocols/nullprotocol"
+
+)
+
+
+func RegisterProtocols() {
+ operations.AddProtocol(a10httprestv2.Registration())
+ operations.AddProtocol(nullprotocol.Registration())
+
+}
diff --git a/ga10/rules/nullrule/public.go b/ga10/rules/nullrule/public.go
new file mode 100644
index 00000000..2f2c50c4
--- /dev/null
+++ b/ga10/rules/nullrule/public.go
@@ -0,0 +1,57 @@
+package nullrule
+
+import(
+ "a10/structures"
+)
+
+
+func Registration() []structures.Rule {
+
+ ruleS := structures.Rule{ "null_success","A rule that always returns success", CallruleS, false}
+ ruleF := structures.Rule{ "null_fail","A rule that always returns fail", CallruleF, false}
+
+ ruleV := structures.Rule{ "null_verifycallfail","A rule that always returns verifycallfail error", CallruleV, false}
+ ruleN := structures.Rule{ "null_noresult","A rule that always returns noresult error", CallruleN, false}
+ ruleE := structures.Rule{ "null_verifycallerrorattempt","A rule that always returns verifycallerrorattempt error", CallruleE, false}
+
+ ruleMEV := structures.Rule{ "null_missingEV","A rule that always returns missing expected value error", CallruleMEV, false}
+ ruleRCF := structures.Rule{ "null_rulecallfailure","A rule that always returns rule call failure error", CallruleRCF, false}
+ ruleU := structures.Rule{ "null_unsetresultvalue","A rule that always returns unste result value error", CallruleU, false}
+
+
+ return []structures.Rule{ ruleS, ruleF, ruleV, ruleN, ruleE, ruleMEV, ruleRCF, ruleU }
+}
+
+func CallruleS(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.Success,"This a demonstration of a success result",nil
+}
+
+func CallruleF(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.Fail,"This a demonstration of a fail result",nil
+}
+
+func CallruleE(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.VerifyClaimErrorAttempt,"This a demonstration of verifycallerrorattempt",nil
+}
+
+func CallruleV(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.VerifyCallFailure,"This a demonstration of a verify call fail result",nil
+}
+
+func CallruleN(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.NoResult,"This a demonstration of no result",nil
+}
+
+
+
+func CallruleMEV(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.MissingExpectedValue,"This a demonstration of missing expected value",nil
+}
+func CallruleRCF(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.RuleCallFailure,"This a demonstration of rule call failure",nil
+}
+func CallruleU(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ return structures.UnsetResultValue,"This a demonstration of unset result value",nil
+}
+
+
diff --git a/ga10/rules/registerRules.go b/ga10/rules/registerRules.go
new file mode 100644
index 00000000..b08618e9
--- /dev/null
+++ b/ga10/rules/registerRules.go
@@ -0,0 +1,25 @@
+package rules
+
+import (
+
+ "a10/structures"
+ "a10/operations"
+
+ "a10/rules/nullrule"
+ "a10/rules/tpm2rules"
+
+)
+
+
+func RegisterRules() {
+ registerListOfRules(nullrule.Registration())
+ registerListOfRules(tpm2rules.Registration())
+
+}
+
+
+func registerListOfRules(rs []structures.Rule) {
+ for _,r := range rs {
+ operations.AddRule(r)
+ }
+}
diff --git a/ga10/rules/tpm2rules/public.go b/ga10/rules/tpm2rules/public.go
new file mode 100644
index 00000000..6fe9a0ea
--- /dev/null
+++ b/ga10/rules/tpm2rules/public.go
@@ -0,0 +1,106 @@
+package tpm2rules
+
+import(
+ "fmt"
+
+ "a10/structures"
+)
+
+
+func Registration() []structures.Rule {
+
+ attestedPCRDigest := structures.Rule{ "tpm2_attestedValue","Checks the TPM's reported attested value against the expected value", AttestedPCRDigest, true}
+ ruleFirmware := structures.Rule{ "tpm2_firmware","Checks the TPM firmware version against the expected value", FirmwareRule, true}
+ ruleMagic := structures.Rule{ "tpm2_magicNumber","Checks the quote magic number is 0xFF544347", MagicNumberRule, false}
+ ruleIsSafe := structures.Rule{ "tpm2_safe","Checks that the value of safe is 1", IsSafe, false}
+
+ return []structures.Rule{ ruleFirmware, ruleMagic, attestedPCRDigest, ruleIsSafe }
+}
+
+
+
+func IsSafe(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ // Type conversation here are a bit ugly, but at least strongly typed!!!
+ // Note that the type of claimedSafe is float64 ... this is the way Golang unmarshalls JSON so there.
+
+ if _, ok := (claim.Body)["ClockInfo"]; !ok {
+ return structures.VerifyCallFailure,"Missing ClockInfo in claim body",nil
+ }
+
+ cli := (claim.Body)["ClockInfo"]
+ claimedSafe := cli.(map[string]interface{})["Safe"]
+
+ if claimedSafe==1.0 {
+ return structures.Success,"",nil
+ } else {
+ return structures.Fail,"Uncommanded device/TPM shutdown",nil
+ }
+
+}
+
+
+func AttestedPCRDigest(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+ // Type conversation here are a bit ugly, but at least strongly typed!!!
+
+ if _, ok := (claim.Body)["AttestedQuoteInfo"]; !ok {
+ return structures.VerifyCallFailure,"Missing AttestedQuoteInfo in claim body",nil
+ }
+
+ aqi := (claim.Body)["AttestedQuoteInfo"]
+ claimedAV := aqi.(map[string]interface{})["PCRDigest"]
+
+ expectedAV := (ev.EVS)["attestedValue"]
+
+ if expectedAV==claimedAV {
+ return structures.Success,"",nil
+ } else {
+ msg := fmt.Sprintf("Got %v as attested value but expected %v",claimedAV,expectedAV)
+ return structures.Fail,msg,nil
+ }
+
+}
+
+
+func FirmwareRule(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+
+ // The firmware version is serialised from the JSON as a float64, so we need to convert it to string
+ // annoyingly this is in decical not hex
+
+ if _, ok := (claim.Body)["FirmwareVersion"]; !ok {
+ return structures.VerifyCallFailure,"Missing FirmwareVersion in claim body",nil
+ }
+
+ claimedFirmware := fmt.Sprintf("%.0f",(claim.Body)["FirmwareVersion"])
+ expectedFirmware := (ev.EVS)["firmwareVersion"]
+
+ if expectedFirmware==claimedFirmware {
+ return structures.Success,"",nil
+ } else {
+ msg := fmt.Sprintf("Got %v as firmware version but expected %v",claimedFirmware,expectedFirmware)
+ return structures.Fail,msg,nil
+ }
+
+}
+
+func MagicNumberRule(claim structures.Claim, rule string, ev structures.ExpectedValue, session structures.Session, parameter map[string]interface{}) (structures.ResultValue, string, error) {
+
+ // The firmware version is serialised from the JSON as a float64, so we need to convert it to string
+
+ if _, ok := (claim.Body)["Magic"]; !ok {
+ return structures.VerifyCallFailure,"Missing Magic in claim body",nil
+ }
+
+ magic := fmt.Sprintf("%.0f",(claim.Body)["Magic"])
+ fmt.Printf("Magic is %v\n",magic)
+ fmt.Printf("But claim body is %v\n",(claim.Body)["Magic"])
+
+ // annoyingly this is in decical not hex, but 4283712327_10 == FF544 357_16
+
+ if magic=="4283712327" {
+ return structures.Success,"",nil
+ } else {
+ return structures.Fail,"TPM magic number and/or TPMS_ATTEST type wrong",nil
+ }
+
+
+}
\ No newline at end of file
diff --git a/ga10/structures/claims.go b/ga10/structures/claims.go
new file mode 100644
index 00000000..652ef9e3
--- /dev/null
+++ b/ga10/structures/claims.go
@@ -0,0 +1,31 @@
+package structures
+
+
+
+type Claim struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ BodyType string `json:"bodytype",bson:"bodytype"`
+ Header ClaimHeader `json:"header",bson:"header"`
+ Body map[string]interface{} `json:"body",bson:"body"`
+ Footer ClaimFooter `json:"footer",bson:"footer"`
+}
+
+
+type ClaimHeader struct {
+ Element Element `json:"element",bson:"element"`
+ Policy Policy `json:"policy",bson:"policy"`
+ Session Session `json:"session",bson:"session"`
+ Timing Timing `json:"timing",bson:"timing"`
+}
+
+type Timing struct {
+ Requested Timestamp `json:"requested",bson:"requested"`
+ Received Timestamp `json:"received",bson:"received"`
+}
+
+type ClaimFooter struct {
+ Hash []byte `json:"hash",bson:"hash"`
+ Signature []byte `json:"signature",bson:"signature"`
+}
+
+const CLAIMERROR = "*ERROR"
\ No newline at end of file
diff --git a/ga10/structures/common.go b/ga10/structures/common.go
new file mode 100644
index 00000000..0eeeb8fd
--- /dev/null
+++ b/ga10/structures/common.go
@@ -0,0 +1,5 @@
+package structures
+
+type ID struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+}
diff --git a/ga10/structures/elements.go b/ga10/structures/elements.go
new file mode 100644
index 00000000..54393262
--- /dev/null
+++ b/ga10/structures/elements.go
@@ -0,0 +1,46 @@
+package structures
+
+type Element struct {
+ ItemID string `json:"itemid,omitempty",bson:"itemid,omitempty"`
+ Name string `json:"name",bson:"name"`
+ Description string `json:"description",bson:"description"`
+ Endpoint string `json:"endpoint",bson:"endpoint"`
+ Protocol string `json:"protocol",bson:"protocol"`
+ Tags []string `json:"tags",bson:"tags"`
+
+ Sshkey SSHKEY `json:"sshkey,omitempty",bson:"sshkey,omitempty"`
+ TPM2 TPM2 `json:"tpm2,omitempty",bson:"tpm2,omitempty"`
+ UEFI UEFI `json:"uefi,omitempty",bson:"uefi,omitempty"`
+ IMA IMA `json:"ima,omitempty",bson:"ima,omitempty"`
+ TXT TXT `json:"txt,omitempty",bson:"txt,omitempty"`
+}
+
+type SSHKEY struct {
+ Key string `json:"key",bson:"key"`
+ Timeout int16 `json:"timeout",bson:"timeout"`
+ Username string `json:"username",bson:"username"`
+}
+
+type UEFI struct {
+ Eventlog string `json:"eventlog",bson:"eventlog"`
+}
+
+type IMA struct {
+ ASCIILog string `json:"asciilog",bson:"asciilog"`
+}
+
+type TXT struct {
+ Log string `json:"log",bson:"log"`
+}
+
+type TPM2 struct {
+ Device string `json:"device",bson:"device"`
+ EK TPMKey `json:"ek",bson:"ek"`
+ AK TPMKey `json:"ak",bson:"ak"`
+}
+
+type TPMKey struct {
+ Public string `json:"public",bson:"public"`
+ Handle string `json:"handle",bson:"handle"`
+ Name string `json:"name",bson:"name"`
+}
\ No newline at end of file
diff --git a/ga10/structures/expectedValues.go b/ga10/structures/expectedValues.go
new file mode 100644
index 00000000..d6df041e
--- /dev/null
+++ b/ga10/structures/expectedValues.go
@@ -0,0 +1,13 @@
+package structures
+
+type ExpectedValue struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ Name string `json:"name",bson:"name"`
+ Description string `json:"description",bson:"description"`
+
+ ElementID string `json:"elementID",bson:"elementID"`
+ PolicyID string `json:"policyID",bson:"policyID"`
+
+ EVS map[string]interface{} `json:"evs",bson:"evs"`
+}
+
\ No newline at end of file
diff --git a/ga10/structures/logs.go b/ga10/structures/logs.go
new file mode 100644
index 00000000..17455093
--- /dev/null
+++ b/ga10/structures/logs.go
@@ -0,0 +1,14 @@
+package structures
+
+
+
+type LogEntry struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ Timestamp Timestamp `json:"timestamp",bson:"timestamp"`
+ Channel string `json:"channel",bson:"channel"`
+ Operation string `json:"operation",bson:"operation"`
+ RefID string `json:"refid",bson:"refid"`
+ RefType string `json:"reftype",bson:"reftype"`
+ Message string `json:"message",bson:"message"`
+ Hash []byte `json:"hash",bson:"hash"`
+}
diff --git a/ga10/structures/opaqueobjects.go b/ga10/structures/opaqueobjects.go
new file mode 100644
index 00000000..af0effd1
--- /dev/null
+++ b/ga10/structures/opaqueobjects.go
@@ -0,0 +1,8 @@
+package structures
+
+type OpaqueObject struct {
+ Value string `json:"value",bson:"value"`
+ Type string `json:"type",bson:"type"`
+ ShortDescription string `json:"shortDescription",bson:"shortDescription"`
+ LongDescription string `json:"longDescription",bson:"longDescription"`
+}
diff --git a/ga10/structures/policies.go b/ga10/structures/policies.go
new file mode 100644
index 00000000..3d930925
--- /dev/null
+++ b/ga10/structures/policies.go
@@ -0,0 +1,10 @@
+package structures
+
+type Policy struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ Name string `json:"name",bson:"name"`
+ Description string `json:"description",bson:"description"`
+ Intent string `json:"intent",bson:"intent"`
+ Parameters map[string]interface{} `json:"parameters",bson:"parameters"`
+}
+
\ No newline at end of file
diff --git a/ga10/structures/protocols.go b/ga10/structures/protocols.go
new file mode 100644
index 00000000..7a532968
--- /dev/null
+++ b/ga10/structures/protocols.go
@@ -0,0 +1,16 @@
+package structures
+
+//This is the type of the protocol functions
+//
+// In useage it takes the element, policy, session and a "json" structure of parameters
+// Return is "json" and a string containing any error messages
+type ProtocolCall func(Element, Policy, Session, map[string]interface{}) (map[string]interface{}, string)
+
+
+type Protocol struct {
+ Name string
+ Description string
+ CallFunction ProtocolCall
+ Intents []string
+}
+
diff --git a/ga10/structures/results.go b/ga10/structures/results.go
new file mode 100644
index 00000000..28ffc6cd
--- /dev/null
+++ b/ga10/structures/results.go
@@ -0,0 +1,35 @@
+package structures
+
+type ResultValue int
+
+const (
+ Success ResultValue = 0
+ Fail = 9001
+
+ VerifyCallFailure = 9010
+ VerifyClaimErrorAttempt = 9098
+ NoResult = 9099
+
+ MissingExpectedValue = 9997
+ RuleCallFailure = 9998
+ UnsetResultValue = 9999
+)
+
+type Result struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ ClaimID string `json:"claimID",bson:"name"`
+ ClaimFooter ClaimFooter `json:"claimFooter",bson:"claimFooter"`
+ Session Session `json:"session",bson:"description"`
+ ExpectedValue ExpectedValue `json:"expectedValue",bson:"intent"`
+ Parameters map[string]interface{} `json:"parameters",bson:"parameters"`
+ Message string `json:"message",bson:"description"`
+ RuleName string `json:"ruleName",bson:"description"`
+ VerifiedAt Timestamp `json:"verifiedAt",bson:"description"`
+ Result ResultValue `json:"result",bson:"result"`
+ Footer ResultFooter `json:"footer",bson:"footer"`
+}
+
+type ResultFooter struct {
+ Hash []byte `json:"hash",bson:"hash"`
+ Signature []byte `json:"signature",bson:"signature"`
+}
diff --git a/ga10/structures/rules.go b/ga10/structures/rules.go
new file mode 100644
index 00000000..9ed89826
--- /dev/null
+++ b/ga10/structures/rules.go
@@ -0,0 +1,16 @@
+package structures
+
+//This is the type of the protocol functions
+//
+// In useage it takes the element, policy, session and a "json" structure of parameters
+// Return is "json" and a string containing a message from the rule and error in case everything fails
+type RuleCall func(Claim, string, ExpectedValue, Session, map[string]interface{}) (ResultValue, string, error)
+
+type Rule struct {
+ Name string
+ Description string
+ CallFunction RuleCall
+ NeedsEV bool
+}
+
+
diff --git a/ga10/structures/sessions.go b/ga10/structures/sessions.go
new file mode 100644
index 00000000..301c8256
--- /dev/null
+++ b/ga10/structures/sessions.go
@@ -0,0 +1,32 @@
+package structures
+
+
+type Session struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ Timing SessionTiming `json:"timing",bson:"timing"`
+
+ ClaimList []string `json:"claimList",bson:"claimList"`
+ ResultList []string `json:"resultList",bson:"resultList"`
+
+ Message string `json:"message",bson:"message"`
+
+ Footer SessionFooter `json:"footer",bson:"footer"`
+}
+
+
+type SessionSummary struct {
+ ItemID string `json:"itemid",bson:"itemid"`
+ Timing SessionTiming `json:"timing",bson:"timing"`
+}
+
+
+type SessionTiming struct {
+ Opened Timestamp `json:"opened",bson:"opened"`
+ Closed Timestamp `json:"closed",bson:"closed"`
+}
+
+
+type SessionFooter struct {
+ Hash []byte `json:"hash",bson:"hash"`
+ Signature []byte `json:"signature",bson:"signature"`
+}
diff --git a/ga10/structures/types.go b/ga10/structures/types.go
new file mode 100644
index 00000000..17761727
--- /dev/null
+++ b/ga10/structures/types.go
@@ -0,0 +1,3 @@
+package structures
+
+type Timestamp string
diff --git a/ga10/temporary.crt b/ga10/temporary.crt
new file mode 100644
index 00000000..7b042107
--- /dev/null
+++ b/ga10/temporary.crt
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIID+TCCAuGgAwIBAgIUVJZap9c3I9vnPWzjuCdr2HzMn58wDQYJKoZIhvcNAQEL
+BQAwgYsxCzAJBgNVBAYTAkZJMRAwDgYDVQQIDAdVdXNpbWFhMQ4wDAYDVQQHDAVT
+aXBvbzESMBAGA1UECgwJQ2VmZnlsT3BpMQwwCgYDVQQLDANSJkQxDDAKBgNVBAMM
+A0lhbjEqMCgGCSqGSIb3DQEJARYbaWFuLmp1c3Rpbi5vbGl2ZXJAZ21haWwuY29t
+MB4XDTIzMDQyNDE2NDEyM1oXDTI0MDQyMzE2NDEyM1owgYsxCzAJBgNVBAYTAkZJ
+MRAwDgYDVQQIDAdVdXNpbWFhMQ4wDAYDVQQHDAVTaXBvbzESMBAGA1UECgwJQ2Vm
+ZnlsT3BpMQwwCgYDVQQLDANSJkQxDDAKBgNVBAMMA0lhbjEqMCgGCSqGSIb3DQEJ
+ARYbaWFuLmp1c3Rpbi5vbGl2ZXJAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAnYeTyopKf82aGAtACj3GFXBDyAqnOWz3t5P8x7mhU6TW
+/+RKbKIpV9/Gytg0hQOsXf5izjOqwu92RJA08W0iO6J/GNFEuYg3tf3MYtFmDZL7
+DtHicRY+apSgrv4NtpTezW0DHFdyLHK0RL32Fgkb9JRHfQdssRmymKu8PvPxyFw7
+HbD7MurORiGycl/oVdrRhws7lMF/kLuK+ksh3G6M/+sF/4HCtAJ37aeXRAnudktB
+RelkBd80HKebsbtPkwJrF1g5VpVBDgJVx28MfRrGLotiKwmAp1nVha6JcGZ6y3Sl
+BYTW96/g1QlxOC7tYef0QyyGDeAhIivSwlzuGZ3EzQIDAQABo1MwUTAdBgNVHQ4E
+FgQUhMNzN/omyGgTvG5jqDWtFN1G/lkwHwYDVR0jBBgwFoAUhMNzN/omyGgTvG5j
+qDWtFN1G/lkwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAmB24
+b+ST3ds4pfdiAB6Xfenkk3Fo9cg4hDA9v1nQvXe49x9ZMq5yZ9tkOIWtI0y2nCky
+qUGbU08EuZmLyq7ReurRg2nMLi/M+xMJmaCzMMg8vQPMwcAy/EsDgVUS66rbWMYn
+VA/zLbjkNAXPzxYzVTSKVdw4loNLagoOkCZRYotA5w9LlmcC/5yxX9wJxb/K7CD7
+HPovpR1alU2J5vAbjmo/TAjRFzkt2pQ8kqjAmdWjJb/zIJWwv/s62obb/Ye9kZy4
+40CejuNxsYIvkMyeNAAs6psDO/eEMQITvtaMakczM6qQpdX6yYdWnUOvvjOfu6YA
+k7nQ2CE2vEAiLhxZIQ==
+-----END CERTIFICATE-----
diff --git a/ga10/temporary.key b/ga10/temporary.key
new file mode 100644
index 00000000..e3367433
--- /dev/null
+++ b/ga10/temporary.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdh5PKikp/zZoY
+C0AKPcYVcEPICqc5bPe3k/zHuaFTpNb/5EpsoilX38bK2DSFA6xd/mLOM6rC73ZE
+kDTxbSI7on8Y0US5iDe1/cxi0WYNkvsO0eJxFj5qlKCu/g22lN7NbQMcV3IscrRE
+vfYWCRv0lEd9B2yxGbKYq7w+8/HIXDsdsPsy6s5GIbJyX+hV2tGHCzuUwX+Qu4r6
+SyHcboz/6wX/gcK0Anftp5dECe52S0FF6WQF3zQcp5uxu0+TAmsXWDlWlUEOAlXH
+bwx9GsYui2IrCYCnWdWFrolwZnrLdKUFhNb3r+DVCXE4Lu1h5/RDLIYN4CEiK9LC
+XO4ZncTNAgMBAAECggEABlx/uNmdyYxtcRQfOWqmMZ5vdkgL2bNPS5AD0LLr01tg
+PUQkRz/DKKPGPNG/STHNR5xqtAX9GtMdtQYXxToRfFQDCucEffOEwGon00O+ecTa
+M46BNOzfh2FKHdbvidR4LNZ+ninf1/Cn2/DJ27jxco58Vo2ys3IktqqUtvwV4u/a
+Tozfc5BWlVd2eYqwv8MyhZPpPxcArC1vPH2os/1/Q/qe8IpCOBHy12SN7Nje+l3p
+LYRLHm3rHhKPwHIEd05d5S3BZ0u3Eea20hXAynT2483XaLj1QpImRRZ4O5H0RRRE
+apRU7hPlqD8kpD7g6kbkiMCJUOp2Q2NbzfPVH7hlFwKBgQDQKOnABlG5InHPE+su
+I1AlvGIThFPbKZEH4MSA3nNEeyqV2P7eRadZexJdF8BAS8yqp73ZbbqFeAkMtL2/
+gc4grOovr4BKy8S3w8utd82dqwD7dUxY+DcP57rogdz7Z82R+RpUwksitv8K1nDM
+JGo7WvDUDxQqnRs29WwFb+e9owKBgQDBu9WYeleUwl7krKW9+XmqzDcHwXik6udv
+591IFNbW0B3XGweI18bvTmpYK1cYNYhamloawEiERofX+LVQGKsz33XdcP9a/k7E
+ADJy+begSjRvQ7SML3V+KGZSPKE2Wo5ohpBgy+ytFCUb0APC0K/Mk/kjLQHr/ZSg
+5bDp3fG6zwKBgQCoe4T/JN4+v+9oEZI4bOKxOHIVo/SPnmxB+R5zxBl+I0bLtLBN
+zgju9xtc+B1mrTOCKXUTqKng39BLVXuDpxflALAoWp+3aojVyIdx51cot8F6xm0+
+UeGXYRO6n2nynwkXjo1Ob1iLR5zU886mnQ7S7f+hVHcZKsJdUHXXTMVAiwKBgDtU
+MJdfcA7Ib5MMJD3HdrENlRS09SNcJMAqe6Olbh2e4mSLjIUlv3BtzTdvHl71lepZ
+NprWo96OUu+a5LvAsj1Sg5/rCOhu1ORFQy3et5NI5kHktBfyOMMH0D4C/0PL+6ya
++QALs1FVx/96doxkqFG4RyW0lNAWejvD26fjJjIVAoGAeP9pJPFIGFUpUwKTVgsJ
+cfm082bJsRpBvRWHhDvJA8nliY1XoTGzoproNxCeZLywkKREflGw2d9AeYgCo8OD
+z16VvR/B13l0Dh4fYQS7wGkGEJ2+LcKlEZ+lCWbrFNWHre8vZ9/capxB6PrPn10R
+N/cWWNE1DVBVVxu/83lsAk0=
+-----END PRIVATE KEY-----
diff --git a/ga10/tests/exampledatabase/elements.json b/ga10/tests/exampledatabase/elements.json
new file mode 100644
index 00000000..fdc59cf9
--- /dev/null
+++ b/ga10/tests/exampledatabase/elements.json
@@ -0,0 +1,2 @@
+{"_id":{"$oid":"645277d5799325c3a0afaffb"},"itemid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","name":"WorkLaptopLinux","description":"Main work Linux laptop, with Cofiwch Dryweryn sticker on the back.","protocol":"A10HTTPRESTv2","endpoint":"http://192.168.1.218:8530","tags":["x86","linux","work"],"uefi":{"eventlog":"/sys/kernel/security/tpm0/binary_bios_measurements"},"ima":{"asciilog":"/sys/kernel/security/ima/ascii_runtime_measurements"},"tpm2":{"device":"/dev/tpmrm0","ek":{"handle":"0x810100EE","public":"aaa","name":"111"},"ak":{"handle":"0x810100AA","public":"bbb","name":"222"}}}
+{"_id":{"$oid":"645277d809d1d2ee1a672a84"},"itemid":"765e0188-a609-49c0-bf61-3825849413cd","name":"SensorPi","description":"Pi for running the sensor aggregation.","protocol":"A10HTTPRESTv2","endpoint":"http://192.168.1.111:8530","tags":["pi","linux","home"],"tpm2":{"device":"/dev/tpm0","ek":{"handle":"0x810100EE","public":"aaa","name":"111"},"ak":{"handle":"0x810100AA","public":"bbb","name":"222"}}}
diff --git a/ga10/tests/exampledatabase/expectedvalues.json b/ga10/tests/exampledatabase/expectedvalues.json
new file mode 100644
index 00000000..985557c9
--- /dev/null
+++ b/ga10/tests/exampledatabase/expectedvalues.json
@@ -0,0 +1,2 @@
+{"_id":{"$oid":"645a3fe44d2e1199e6183a1e"},"itemid":"d4b76ce1-2b56-4346-aa11-546ea412d1e5","name":"Work laptop firmware","description":"Firmware values, specifically PCR0,2,7 for work laptop","elementID":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","policyID":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0","evs":{"attestedValue":"lR+zAH+TVf7g+QTNDVs9J0hD+VcbYNthM1RUQ2nfrsY=","firmwareVersion":"19984793217276456"}}
+{"_id":{"$oid":"645a76bf9b0597b56a39e98e"},"itemid":"fbe49635-e9e1-4f9a-b26b-4ca8401d0959","name":"Raspberru Pi firmware","description":"Firmware values, specifically PCR0,2,7 for work laptop","elementID":"765e0188-a609-49c0-bf61-3825849413cd","pid":"ba64f197-0eb3-4f3f-a74d-a9a8e0a3f17d","policyID":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0","evs":{"attestedValue":"lR+zAH+TVf7g+QTNDVs9J0hD+VcbYNthM1RUQ2nfrsY=","firmwareVersion":"19984793217276456"}}
diff --git a/ga10/tests/exampledatabase/policies.json b/ga10/tests/exampledatabase/policies.json
new file mode 100644
index 00000000..e7349514
--- /dev/null
+++ b/ga10/tests/exampledatabase/policies.json
@@ -0,0 +1,6 @@
+{"_id":{"$oid":"64501ba6090571d49e0ab35d"},"itemid":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0","name":"testPolicy","description":"This is a test policy for tpm2/quote","intent":"tpm2/quote","parameters":{"pcrSelection":"0,2,7","bank":"sha256"}}
+{"_id":{"$oid":"64501bb9090571d49e0ab35e"},"itemid":"ba64f197-0eb3-4f3f-a74d-a9a8e0a3f17d","name":"testPolicy","description":"This is a test policy for tpm2/pcrs","intent":"tpm2/pcrs","parameters":{}}
+{"_id":{"$oid":"64501bc9090571d49e0ab35f"},"itemid":"e7c5d901-3caa-4542-8660-7054560198e1","name":"testPolicy","description":"This is a test policy for uefi/eventlog","intent":"uefi/eventlog","parameters":{}}
+{"_id":{"$oid":"64501bd8090571d49e0ab360"},"itemid":" 8aa82519-16f0-4418-83e2-6e9e6edbcdc6","name":"testPolicy","description":"This is a test policy for null/null","intent":"null/null","parameters":{}}
+{"_id":{"$oid":"645a63ec9b0597b56a39e986"},"itemid":"9a74825f-f780-4eec-9b20-646ba924857a","name":"SystemInfo","description":"This retrieves the system info for a given device","intent":"sys/info","parameters":{}}
+{"_id":{"$oid":"645a64729b0597b56a39e988"},"itemid":"f147fbd9-af7e-46f6-a8f8-3b0734918743","name":"IMAlog","description":"This returns the Linux IMA ASCII Log","intent":"ima/asciilog","parameters":{}}
diff --git a/ga10/tests/pkcs11test/go.mod b/ga10/tests/pkcs11test/go.mod
new file mode 100644
index 00000000..61b96ebb
--- /dev/null
+++ b/ga10/tests/pkcs11test/go.mod
@@ -0,0 +1,5 @@
+module p
+
+go 1.20
+
+require github.com/miekg/pkcs11 v1.1.1
diff --git a/ga10/tests/pkcs11test/go.sum b/ga10/tests/pkcs11test/go.sum
new file mode 100644
index 00000000..478c5244
--- /dev/null
+++ b/ga10/tests/pkcs11test/go.sum
@@ -0,0 +1,2 @@
+github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
+github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
diff --git a/ga10/tests/pkcs11test/p.go b/ga10/tests/pkcs11test/p.go
new file mode 100644
index 00000000..5a322618
--- /dev/null
+++ b/ga10/tests/pkcs11test/p.go
@@ -0,0 +1,25 @@
+package main
+
+import(
+ "fmt"
+
+ "github.com/miekg/pkcs11"
+)
+
+func main() {
+ fmt.Println("Starting")
+
+ p := pkcs11.New("/usr/lib/x86_64-linux-gnu/pkcs11/yubihsm_pkcs11.so")
+ fmt.Printf("PKCS11 module is %v\n",p)
+
+ err := p.Initialize()
+ fmt.Printf("PKCS11 initialisation is %v\n",err)
+
+ defer p.Destroy()
+ defer p.Finalize()
+
+ slots, err := p.GetSlotList(true)
+ fmt.Printf("Slots %v , %v\n",err,slots)
+
+
+}
\ No newline at end of file
diff --git a/ga10/tests/pkcs11test/yubihsm_pkcs1.conf b/ga10/tests/pkcs11test/yubihsm_pkcs1.conf
new file mode 100644
index 00000000..2f954b55
--- /dev/null
+++ b/ga10/tests/pkcs11test/yubihsm_pkcs1.conf
@@ -0,0 +1,4 @@
+connector=http://localhost:12345
+debug
+libdebug
+dinout
\ No newline at end of file
diff --git a/ga10/tests/testscripts/attest.sh b/ga10/tests/testscripts/attest.sh
new file mode 100755
index 00000000..7d186751
--- /dev/null
+++ b/ga10/tests/testscripts/attest.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+#work laptop and tpm2/quote policy
+#curl -X GET http://127.0.0.1:8520/element/c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a
+#curl -X GET http://127.0.0.1:8520/policy/6770b5b9-d0ea-4f8b-817f-cab1bf8169c0
+
+#open session
+osid="$( curl -s -X POST -H "Content-Type: application/json" http://127.0.0.1:8520/session | jq -r '.itemid' )"
+echo "Session opened: http://127.0.0.1:8520/session/$osid"
+
+#attest
+cid="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "Claim is: http://127.0.0.1:8520/claim/$cid"
+
+#verify
+#rid="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": ""$cid"", "sid": ""$osid"", "rule":"tpm2/firmware"
+#, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+#echo "Result is: http://127.0.0.1:8520/result/$rid"
+
+#close session
+csid="$( curl -s -X DELETE -H "Content-Type: application/json" http://127.0.0.1:8520/session/""$osid"" | jq -r '.itemid' )"
+echo "Session closed: http://127.0.0.1:8520/session/$osid"
diff --git a/ga10/tests/testscripts/get.sh b/ga10/tests/testscripts/get.sh
new file mode 100755
index 00000000..5e67afe1
--- /dev/null
+++ b/ga10/tests/testscripts/get.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+echo "Gets"
+curl -X GET http://127.0.0.1:8520/elements
+curl -X GET http://127.0.0.1:8520/policies
+curl -X GET http://127.0.0.1:8520/expectedValues
+#curl -X GET http://127.0.0.1:8520/claims
+curl -X GET http://127.0.0.1:8520/results
+curl -X GET http://127.0.0.1:8520/hashes
+curl -X GET http://127.0.0.1:8520/protocols
+curl -X GET http://127.0.0.1:8520/rules
+
+echo "Get specifics"
+curl -X GET http://127.0.0.1:8520/element/c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a
+curl -X GET http://127.0.0.1:8520/policy/6770b5b9-d0ea-4f8b-817f-cab1bf8169c0
+curl -X GET http://127.0.0.1:8520/protocol/A10HTTPRESTv2
+
+echo "Get stuff that does not exist"
+curl -X GET http://127.0.0.1:8520/element/foobar
+curl -X GET http://127.0.0.1:8520/policy/barfoo
+curl -X GET http://127.0.0.1:8520/protocol/foobar
\ No newline at end of file
diff --git a/ga10/tests/testscripts/verify_laptop.sh b/ga10/tests/testscripts/verify_laptop.sh
new file mode 100755
index 00000000..2672278b
--- /dev/null
+++ b/ga10/tests/testscripts/verify_laptop.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+#work laptop and tpm2/quote policy
+echo Element details...
+curl -X GET http://127.0.0.1:8520/element/c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a
+
+echo Example policy...
+curl -X GET http://127.0.0.1:8520/policy/6770b5b9-d0ea-4f8b-817f-cab1bf8169c0
+
+#
+#open session
+#
+osid="$( curl -s -X POST -H "Content-Type: application/json" http://127.0.0.1:8520/session | jq -r '.itemid' )"
+echo "Session opened: http://127.0.0.1:8520/session/$osid"
+
+
+#
+#attest SYS
+#
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"9a74825f-f780-4eec-9b20-646ba924857a", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "SYS Claim is: http://127.0.0.1:8520/claim/$cidx"
+
+#
+#attest UEFI
+#
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"e7c5d901-3caa-4542-8660-7054560198e1", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "UEFI claim is: http://127.0.0.1:8520/claim/$cidx"
+
+#
+#attest IMA
+#
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"f147fbd9-af7e-46f6-a8f8-3b0734918743", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "IMA claim is: http://127.0.0.1:8520/claim/$cidx"
+
+#
+#attest PCRs
+#
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"ba64f197-0eb3-4f3f-a74d-a9a8e0a3f17d", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "PCRs claim is: http://127.0.0.1:8520/claim/$cidx"
+
+#
+#attest QUOTE
+#
+cid="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a","pid":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "QUOTEClaim is: http://127.0.0.1:8520/claim/$cid"
+
+
+# Note: we do not check the HTTP response codes in the following, only the itemid in any JSON output. So no error checking!
+
+#
+#verify tpm2 rules
+#
+rid1="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_firmware"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$rid1"
+
+rid2="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_magicNumber"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$rid2"
+
+rid3="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_attestedValue"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$rid3"
+
+rid4="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_safe"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$rid4"
+
+#
+#verify null rules - these don't do much, just for completeness
+#
+ridn1="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_success"
+ , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$ridn1"
+ridn2="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_fail"
+ , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$ridn2"
+ridn3="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_verifycallfail"
+ , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$ridn3"
+ridn4="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_noresult"
+ , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Result is: http://127.0.0.1:8520/result/$ridn4"
+
+#
+#close session
+#
+csid="$( curl -s -X DELETE -H "Content-Type: application/json" http://127.0.0.1:8520/session/""$osid"" | jq -r '.itemid' )"
+echo "Session closed: http://127.0.0.1:8520/session/$osid"
+
+
diff --git a/ga10/tests/testscripts/verify_pi.sh b/ga10/tests/testscripts/verify_pi.sh
new file mode 100755
index 00000000..7034a219
--- /dev/null
+++ b/ga10/tests/testscripts/verify_pi.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+#pi and tpm2/quote policy
+#curl -X GET http://127.0.0.1:8520/element/c7219a2b-7d02-4c1f-bad7-50c4d3b2cd2a
+#curl -X GET http://127.0.0.1:8520/policy/6770b5b9-d0ea-4f8b-817f-cab1bf8169c0
+
+#pcrs policy
+#curl -X GET http://127.0.0.1:8520/policy/ba64f197-0eb3-4f3f-a74d-a9a8e0a3f17d
+
+#
+#open session
+#
+osid="$( curl -s -X POST -H "Content-Type: application/json" http://127.0.0.1:8520/session | jq -r '.itemid' )"
+echo "Session opened: http://127.0.0.1:8520/session/$osid"
+
+#sysinfo
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"765e0188-a609-49c0-bf61-3825849413cd","pid":"9a74825f-f780-4eec-9b20-646ba924857a", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "Sysinfo Claim is: http://127.0.0.1:8520/claim/$cidx"
+
+# attest PCRs
+cidx="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"765e0188-a609-49c0-bf61-3825849413cd","pid":"ba64f197-0eb3-4f3f-a74d-a9a8e0a3f17d", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "PCRS Claim is: http://127.0.0.1:8520/claim/$cidx"
+
+#
+#attest QUOTE
+#
+cid="$( curl -s -X POST -H "Content-Type: application/json" -d '{"eid":"765e0188-a609-49c0-bf61-3825849413cd","pid":"6770b5b9-d0ea-4f8b-817f-cab1bf8169c0", "sid": "'"$osid"'", "parameters":{}}' http://127.0.0.1:8520/attest | jq -r '.itemid' )"
+echo "Quote Claim is: http://127.0.0.1:8520/claim/$cid"
+
+
+# Note: we do not check the HTTP response codes in the following, only the itemid in any JSON output. So no error checking!
+
+#
+#verify tpm2 rules
+#
+rid1="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_firmware"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "FirmareResult is: http://127.0.0.1:8520/result/$rid1"
+
+rid2="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_magicNumber"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Magic Result is: http://127.0.0.1:8520/result/$rid2"
+
+rid3="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_attestedValue"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Attested Value Result is: http://127.0.0.1:8520/result/$rid3"
+
+rid4="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"tpm2_safe"
+, "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+echo "Safe Result is: http://127.0.0.1:8520/result/$rid4"
+
+#
+#verify null rules
+#
+# ridn1="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_success"
+# , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+# echo "Result is: http://127.0.0.1:8520/result/$ridn1"
+# ridn2="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_fail"
+# , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+# echo "Result is: http://127.0.0.1:8520/result/$ridn2"
+# ridn3="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_verifycallfail"
+# , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+# echo "Result is: http://127.0.0.1:8520/result/$ridn3"
+# ridn4="$( curl -s -X POST -H "Content-Type: application/json" -d '{"cid": "'"$cid"'", "sid": "'"$osid"'", "rule":"null_noresult"
+# , "parameters":{}}' http://127.0.0.1:8520/verify | jq -r '.itemid' )"
+# echo "Result is: http://127.0.0.1:8520/result/$ridn4"
+
+#
+#close session
+#
+csid="$( curl -s -X DELETE -H "Content-Type: application/json" http://127.0.0.1:8520/session/""$osid"" | jq -r '.itemid' )"
+echo "Session closed: http://127.0.0.1:8520/session/$osid"
+
+
diff --git a/ga10/utilities/hashes.go b/ga10/utilities/hashes.go
new file mode 100644
index 00000000..b93d14d5
--- /dev/null
+++ b/ga10/utilities/hashes.go
@@ -0,0 +1,33 @@
+package utilities
+
+import(
+ "encoding/gob"
+ "fmt"
+ "log"
+ "bytes"
+ "crypto/sha256"
+)
+
+func init(){
+
+ gob.Register([]interface{}{})
+ gob.Register(map[string]interface{}{})
+
+}
+
+func MakeSHA256(i any) ([]uint8,error) {
+
+ var b bytes.Buffer
+
+ e := gob.NewEncoder(&b)
+ if err := e.Encode(i); err != nil {
+ log.Printf("WARNING: Encoding hash failed with %v. Entry not made.",err)
+ return []uint8{},fmt.Errorf("Encoding Failed")
+ }
+
+ h := sha256.New()
+ h.Write(b.Bytes())
+ digest := h.Sum(nil)
+
+ return digest,nil
+}
\ No newline at end of file
diff --git a/ga10/utilities/identifiers.go b/ga10/utilities/identifiers.go
new file mode 100644
index 00000000..3997ad6d
--- /dev/null
+++ b/ga10/utilities/identifiers.go
@@ -0,0 +1,9 @@
+package utilities
+
+import(
+ "github.com/google/uuid"
+)
+
+func MakeID() string {
+ return uuid.New().String()
+}
\ No newline at end of file
diff --git a/ga10/utilities/timestamps.go b/ga10/utilities/timestamps.go
new file mode 100644
index 00000000..8607fa51
--- /dev/null
+++ b/ga10/utilities/timestamps.go
@@ -0,0 +1,15 @@
+package utilities
+
+import(
+ "time"
+ "fmt"
+
+ "a10/structures"
+)
+
+
+//makeTimestamp generates the number of nanoseconds since Unix Epoch in UTC.
+func MakeTimestamp() structures.Timestamp {
+ t := structures.Timestamp(fmt.Sprintf("%v",time.Now().UnixNano()))
+ return t
+}
\ No newline at end of file
diff --git a/ta10 b/ta10
new file mode 160000
index 00000000..918a29a2
--- /dev/null
+++ b/ta10
@@ -0,0 +1 @@
+Subproject commit 918a29a241159fc7d4028ad97ebaf5b06f81c4ff
diff --git a/README.md b/v0.11.0python_final/README.md
similarity index 100%
rename from README.md
rename to v0.11.0python_final/README.md
diff --git a/a10rest/Dockerfile.local b/v0.11.0python_final/a10rest/Dockerfile.local
similarity index 100%
rename from a10rest/Dockerfile.local
rename to v0.11.0python_final/a10rest/Dockerfile.local
diff --git a/a10rest/README.md b/v0.11.0python_final/a10rest/README.md
similarity index 100%
rename from a10rest/README.md
rename to v0.11.0python_final/a10rest/README.md
diff --git a/a10rest/a10rest.conf b/v0.11.0python_final/a10rest/a10rest.conf
similarity index 100%
rename from a10rest/a10rest.conf
rename to v0.11.0python_final/a10rest/a10rest.conf
diff --git a/a10rest/a10rest.py b/v0.11.0python_final/a10rest/a10rest.py
similarity index 100%
rename from a10rest/a10rest.py
rename to v0.11.0python_final/a10rest/a10rest.py
diff --git a/a10rest/blueprints/dbimportexport.py b/v0.11.0python_final/a10rest/blueprints/dbimportexport.py
similarity index 100%
rename from a10rest/blueprints/dbimportexport.py
rename to v0.11.0python_final/a10rest/blueprints/dbimportexport.py
diff --git a/a10rest/blueprints/v2.py b/v0.11.0python_final/a10rest/blueprints/v2.py
similarity index 100%
rename from a10rest/blueprints/v2.py
rename to v0.11.0python_final/a10rest/blueprints/v2.py
diff --git a/a10rest/requirements.txt b/v0.11.0python_final/a10rest/requirements.txt
similarity index 100%
rename from a10rest/requirements.txt
rename to v0.11.0python_final/a10rest/requirements.txt
diff --git a/a10server/.pypirc_2 b/v0.11.0python_final/a10server/.pypirc_2
similarity index 100%
rename from a10server/.pypirc_2
rename to v0.11.0python_final/a10server/.pypirc_2
diff --git a/a10server/README.md b/v0.11.0python_final/a10server/README.md
similarity index 100%
rename from a10server/README.md
rename to v0.11.0python_final/a10server/README.md
diff --git a/a10server/a10/__init__.py b/v0.11.0python_final/a10server/a10/__init__.py
similarity index 100%
rename from a10server/a10/__init__.py
rename to v0.11.0python_final/a10server/a10/__init__.py
diff --git a/a10server/a10/asvr/__init__.py b/v0.11.0python_final/a10server/a10/asvr/__init__.py
similarity index 100%
rename from a10server/a10/asvr/__init__.py
rename to v0.11.0python_final/a10server/a10/asvr/__init__.py
diff --git a/a10server/a10/asvr/analytics/__init__.py b/v0.11.0python_final/a10server/a10/asvr/analytics/__init__.py
similarity index 100%
rename from a10server/a10/asvr/analytics/__init__.py
rename to v0.11.0python_final/a10server/a10/asvr/analytics/__init__.py
diff --git a/a10server/a10/asvr/analytics/elementanalytics.py b/v0.11.0python_final/a10server/a10/asvr/analytics/elementanalytics.py
similarity index 100%
rename from a10server/a10/asvr/analytics/elementanalytics.py
rename to v0.11.0python_final/a10server/a10/asvr/analytics/elementanalytics.py
diff --git a/a10server/a10/asvr/attestation.py b/v0.11.0python_final/a10server/a10/asvr/attestation.py
similarity index 100%
rename from a10server/a10/asvr/attestation.py
rename to v0.11.0python_final/a10server/a10/asvr/attestation.py
diff --git a/a10server/a10/asvr/claims.py b/v0.11.0python_final/a10server/a10/asvr/claims.py
similarity index 100%
rename from a10server/a10/asvr/claims.py
rename to v0.11.0python_final/a10server/a10/asvr/claims.py
diff --git a/a10server/a10/asvr/db/__init__.py b/v0.11.0python_final/a10server/a10/asvr/db/__init__.py
similarity index 100%
rename from a10server/a10/asvr/db/__init__.py
rename to v0.11.0python_final/a10server/a10/asvr/db/__init__.py
diff --git a/a10server/a10/asvr/db/announce.py b/v0.11.0python_final/a10server/a10/asvr/db/announce.py
similarity index 100%
rename from a10server/a10/asvr/db/announce.py
rename to v0.11.0python_final/a10server/a10/asvr/db/announce.py
diff --git a/a10server/a10/asvr/db/configuration.py b/v0.11.0python_final/a10server/a10/asvr/db/configuration.py
similarity index 100%
rename from a10server/a10/asvr/db/configuration.py
rename to v0.11.0python_final/a10server/a10/asvr/db/configuration.py
diff --git a/a10server/a10/asvr/db/core.py b/v0.11.0python_final/a10server/a10/asvr/db/core.py
similarity index 100%
rename from a10server/a10/asvr/db/core.py
rename to v0.11.0python_final/a10server/a10/asvr/db/core.py
diff --git a/a10server/a10/asvr/db/log.py b/v0.11.0python_final/a10server/a10/asvr/db/log.py
similarity index 100%
rename from a10server/a10/asvr/db/log.py
rename to v0.11.0python_final/a10server/a10/asvr/db/log.py
diff --git a/a10server/a10/asvr/db/mqtt.py b/v0.11.0python_final/a10server/a10/asvr/db/mqtt.py
similarity index 100%
rename from a10server/a10/asvr/db/mqtt.py
rename to v0.11.0python_final/a10server/a10/asvr/db/mqtt.py
diff --git a/a10server/a10/asvr/elements.py b/v0.11.0python_final/a10server/a10/asvr/elements.py
similarity index 100%
rename from a10server/a10/asvr/elements.py
rename to v0.11.0python_final/a10server/a10/asvr/elements.py
diff --git a/a10server/a10/asvr/expectedvalues.py b/v0.11.0python_final/a10server/a10/asvr/expectedvalues.py
similarity index 100%
rename from a10server/a10/asvr/expectedvalues.py
rename to v0.11.0python_final/a10server/a10/asvr/expectedvalues.py
diff --git a/a10server/a10/asvr/hashes.py b/v0.11.0python_final/a10server/a10/asvr/hashes.py
similarity index 100%
rename from a10server/a10/asvr/hashes.py
rename to v0.11.0python_final/a10server/a10/asvr/hashes.py
diff --git a/a10server/a10/asvr/logread.py b/v0.11.0python_final/a10server/a10/asvr/logread.py
similarity index 100%
rename from a10server/a10/asvr/logread.py
rename to v0.11.0python_final/a10server/a10/asvr/logread.py
diff --git a/a10server/a10/asvr/pcrschemas.py b/v0.11.0python_final/a10server/a10/asvr/pcrschemas.py
similarity index 100%
rename from a10server/a10/asvr/pcrschemas.py
rename to v0.11.0python_final/a10server/a10/asvr/pcrschemas.py
diff --git a/a10server/a10/asvr/policies.py b/v0.11.0python_final/a10server/a10/asvr/policies.py
similarity index 100%
rename from a10server/a10/asvr/policies.py
rename to v0.11.0python_final/a10server/a10/asvr/policies.py
diff --git a/a10server/a10/asvr/protocols/A10ArduinoUSB.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10ArduinoUSB.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10ArduinoUSB.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10ArduinoUSB.py
diff --git a/a10server/a10/asvr/protocols/A10ContainerImage.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10ContainerImage.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10ContainerImage.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10ContainerImage.py
diff --git a/a10server/a10/asvr/protocols/A10DummyProtocol.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10DummyProtocol.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10DummyProtocol.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10DummyProtocol.py
diff --git a/a10server/a10/asvr/protocols/A10HttpRest.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10HttpRest.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10HttpRest.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10HttpRest.py
diff --git a/a10server/a10/asvr/protocols/A10Keylime.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10Keylime.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10Keylime.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10Keylime.py
diff --git a/a10server/a10/asvr/protocols/A10ProtocolBase.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10ProtocolBase.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10ProtocolBase.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10ProtocolBase.py
diff --git a/a10server/a10/asvr/protocols/A10tpm2send.py b/v0.11.0python_final/a10server/a10/asvr/protocols/A10tpm2send.py
similarity index 100%
rename from a10server/a10/asvr/protocols/A10tpm2send.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/A10tpm2send.py
diff --git a/a10server/a10/asvr/protocols/Lannion.py b/v0.11.0python_final/a10server/a10/asvr/protocols/Lannion.py
similarity index 100%
rename from a10server/a10/asvr/protocols/Lannion.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/Lannion.py
diff --git a/a10server/a10/asvr/protocols/__init__.py b/v0.11.0python_final/a10server/a10/asvr/protocols/__init__.py
similarity index 100%
rename from a10server/a10/asvr/protocols/__init__.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/__init__.py
diff --git a/a10server/a10/asvr/protocols/protocol_dispatcher.py b/v0.11.0python_final/a10server/a10/asvr/protocols/protocol_dispatcher.py
similarity index 100%
rename from a10server/a10/asvr/protocols/protocol_dispatcher.py
rename to v0.11.0python_final/a10server/a10/asvr/protocols/protocol_dispatcher.py
diff --git a/a10server/a10/asvr/results.py b/v0.11.0python_final/a10server/a10/asvr/results.py
similarity index 100%
rename from a10server/a10/asvr/results.py
rename to v0.11.0python_final/a10server/a10/asvr/results.py
diff --git a/a10server/a10/asvr/rules/__init__.py b/v0.11.0python_final/a10server/a10/asvr/rules/__init__.py
similarity index 100%
rename from a10server/a10/asvr/rules/__init__.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/__init__.py
diff --git a/a10server/a10/asvr/rules/baserule.py b/v0.11.0python_final/a10server/a10/asvr/rules/baserule.py
similarity index 100%
rename from a10server/a10/asvr/rules/baserule.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/baserule.py
diff --git a/a10server/a10/asvr/rules/inteltxt.py b/v0.11.0python_final/a10server/a10/asvr/rules/inteltxt.py
similarity index 100%
rename from a10server/a10/asvr/rules/inteltxt.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/inteltxt.py
diff --git a/a10server/a10/asvr/rules/nullrules.py b/v0.11.0python_final/a10server/a10/asvr/rules/nullrules.py
similarity index 100%
rename from a10server/a10/asvr/rules/nullrules.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/nullrules.py
diff --git a/a10server/a10/asvr/rules/oldrules/arduinoa10rules.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/arduinoa10rules.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/arduinoa10rules.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/arduinoa10rules.py
diff --git a/a10server/a10/asvr/rules/oldrules/claimrules.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/claimrules.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/claimrules.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/claimrules.py
diff --git a/a10server/a10/asvr/rules/oldrules/container.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/container.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/container.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/container.py
diff --git a/a10server/a10/asvr/rules/oldrules/image_rules.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/image_rules.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/image_rules.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/image_rules.py
diff --git a/a10server/a10/asvr/rules/oldrules/testquote.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/testquote.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/testquote.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/testquote.py
diff --git a/a10server/a10/asvr/rules/oldrules/tpm2rules_original.py b/v0.11.0python_final/a10server/a10/asvr/rules/oldrules/tpm2rules_original.py
similarity index 100%
rename from a10server/a10/asvr/rules/oldrules/tpm2rules_original.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/oldrules/tpm2rules_original.py
diff --git a/a10server/a10/asvr/rules/rule_dispatcher.py b/v0.11.0python_final/a10server/a10/asvr/rules/rule_dispatcher.py
similarity index 100%
rename from a10server/a10/asvr/rules/rule_dispatcher.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/rule_dispatcher.py
diff --git a/a10server/a10/asvr/rules/tpm2rules.py b/v0.11.0python_final/a10server/a10/asvr/rules/tpm2rules.py
similarity index 100%
rename from a10server/a10/asvr/rules/tpm2rules.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/tpm2rules.py
diff --git a/a10server/a10/asvr/rules/uefi.py b/v0.11.0python_final/a10server/a10/asvr/rules/uefi.py
similarity index 100%
rename from a10server/a10/asvr/rules/uefi.py
rename to v0.11.0python_final/a10server/a10/asvr/rules/uefi.py
diff --git a/a10server/a10/asvr/sessions.py b/v0.11.0python_final/a10server/a10/asvr/sessions.py
similarity index 100%
rename from a10server/a10/asvr/sessions.py
rename to v0.11.0python_final/a10server/a10/asvr/sessions.py
diff --git a/a10server/a10/asvr/types.py b/v0.11.0python_final/a10server/a10/asvr/types.py
similarity index 100%
rename from a10server/a10/asvr/types.py
rename to v0.11.0python_final/a10server/a10/asvr/types.py
diff --git a/a10server/build/lib/a10/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/__init__.py
diff --git a/a10server/build/lib/a10/asvr/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/__init__.py
diff --git a/a10server/build/lib/a10/asvr/analytics/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/analytics/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/analytics/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/analytics/__init__.py
diff --git a/a10server/build/lib/a10/asvr/analytics/elementanalytics.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/analytics/elementanalytics.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/analytics/elementanalytics.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/analytics/elementanalytics.py
diff --git a/a10server/build/lib/a10/asvr/attestation.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/attestation.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/attestation.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/attestation.py
diff --git a/a10server/build/lib/a10/asvr/claims.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/claims.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/claims.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/claims.py
diff --git a/a10server/build/lib/a10/asvr/db/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/__init__.py
diff --git a/a10server/build/lib/a10/asvr/db/announce.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/announce.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/announce.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/announce.py
diff --git a/a10server/build/lib/a10/asvr/db/configuration.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/configuration.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/configuration.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/configuration.py
diff --git a/a10server/build/lib/a10/asvr/db/core.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/core.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/core.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/core.py
diff --git a/a10server/build/lib/a10/asvr/db/log.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/log.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/log.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/log.py
diff --git a/a10server/build/lib/a10/asvr/db/mqtt.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/db/mqtt.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/db/mqtt.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/db/mqtt.py
diff --git a/a10server/build/lib/a10/asvr/elements.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/elements.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/elements.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/elements.py
diff --git a/a10server/build/lib/a10/asvr/expectedvalues.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/expectedvalues.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/expectedvalues.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/expectedvalues.py
diff --git a/a10server/build/lib/a10/asvr/hashes.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/hashes.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/hashes.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/hashes.py
diff --git a/a10server/build/lib/a10/asvr/logread.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/logread.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/logread.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/logread.py
diff --git a/a10server/build/lib/a10/asvr/pcrschemas.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/pcrschemas.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/pcrschemas.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/pcrschemas.py
diff --git a/a10server/build/lib/a10/asvr/policies.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/policies.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/policies.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/policies.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10ArduinoUSB.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ArduinoUSB.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10ArduinoUSB.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ArduinoUSB.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10ContainerImage.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ContainerImage.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10ContainerImage.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ContainerImage.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10DummyProtocol.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10DummyProtocol.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10DummyProtocol.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10DummyProtocol.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10HttpRest.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10HttpRest.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10HttpRest.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10HttpRest.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10Keylime.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10Keylime.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10Keylime.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10Keylime.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10ProtocolBase.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ProtocolBase.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10ProtocolBase.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10ProtocolBase.py
diff --git a/a10server/build/lib/a10/asvr/protocols/A10tpm2send.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10tpm2send.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/A10tpm2send.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/A10tpm2send.py
diff --git a/a10server/build/lib/a10/asvr/protocols/Lannion.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/Lannion.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/Lannion.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/Lannion.py
diff --git a/a10server/build/lib/a10/asvr/protocols/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/__init__.py
diff --git a/a10server/build/lib/a10/asvr/protocols/protocol_dispatcher.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/protocol_dispatcher.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/protocols/protocol_dispatcher.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/protocols/protocol_dispatcher.py
diff --git a/a10server/build/lib/a10/asvr/results.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/results.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/results.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/results.py
diff --git a/a10server/build/lib/a10/asvr/rules/__init__.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/__init__.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/__init__.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/__init__.py
diff --git a/a10server/build/lib/a10/asvr/rules/baserule.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/baserule.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/baserule.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/baserule.py
diff --git a/a10server/build/lib/a10/asvr/rules/inteltxt.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/inteltxt.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/inteltxt.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/inteltxt.py
diff --git a/a10server/build/lib/a10/asvr/rules/nullrules.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/nullrules.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/nullrules.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/nullrules.py
diff --git a/a10server/build/lib/a10/asvr/rules/rule_dispatcher.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/rule_dispatcher.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/rule_dispatcher.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/rule_dispatcher.py
diff --git a/a10server/build/lib/a10/asvr/rules/tpm2rules.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/tpm2rules.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/tpm2rules.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/tpm2rules.py
diff --git a/a10server/build/lib/a10/asvr/rules/uefi.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/rules/uefi.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/rules/uefi.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/rules/uefi.py
diff --git a/a10server/build/lib/a10/asvr/sessions.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/sessions.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/sessions.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/sessions.py
diff --git a/a10server/build/lib/a10/asvr/types.py b/v0.11.0python_final/a10server/build/lib/a10/asvr/types.py
similarity index 100%
rename from a10server/build/lib/a10/asvr/types.py
rename to v0.11.0python_final/a10server/build/lib/a10/asvr/types.py
diff --git a/a10server/doc/Makefile b/v0.11.0python_final/a10server/doc/Makefile
similarity index 100%
rename from a10server/doc/Makefile
rename to v0.11.0python_final/a10server/doc/Makefile
diff --git a/a10server/doc/build/doctrees/a10.asvr.analytics.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.analytics.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.analytics.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.analytics.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.attestation.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.attestation.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.attestation.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.attestation.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.claims.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.claims.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.claims.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.claims.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.announce.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.announce.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.announce.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.announce.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.configuration.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.configuration.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.configuration.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.configuration.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.core.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.core.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.core.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.core.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.log.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.log.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.log.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.log.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.db.mqtt.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.mqtt.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.db.mqtt.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.db.mqtt.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.elements.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.elements.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.elements.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.elements.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.expectedvalues.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.expectedvalues.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.expectedvalues.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.expectedvalues.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.hashes.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.hashes.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.hashes.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.hashes.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.policies.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.policies.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.policies.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.policies.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.results.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.results.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.results.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.results.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.baserule.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.baserule.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.baserule.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.baserule.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.nullrules.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
diff --git a/a10server/doc/build/doctrees/a10.asvr.rules.uefi.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.uefi.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.asvr.rules.uefi.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.asvr.rules.uefi.doctree
diff --git a/a10server/doc/build/doctrees/a10.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.claim.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.claim.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.claim.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.claim.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.constants.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.constants.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.constants.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.constants.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.convenience.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.convenience.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.convenience.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.convenience.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.identity.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.identity.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.identity.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.identity.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.result.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.result.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.result.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.result.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.returncode.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.returncode.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.returncode.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.returncode.doctree
diff --git a/a10server/doc/build/doctrees/a10.structures.timestamps.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.timestamps.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/a10.structures.timestamps.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/a10.structures.timestamps.doctree
diff --git a/a10server/doc/build/doctrees/environment.pickle b/v0.11.0python_final/a10server/doc/build/doctrees/environment.pickle
similarity index 100%
rename from a10server/doc/build/doctrees/environment.pickle
rename to v0.11.0python_final/a10server/doc/build/doctrees/environment.pickle
diff --git a/a10server/doc/build/doctrees/index.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/index.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/index.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/index.doctree
diff --git a/a10server/doc/build/doctrees/modules.doctree b/v0.11.0python_final/a10server/doc/build/doctrees/modules.doctree
similarity index 100%
rename from a10server/doc/build/doctrees/modules.doctree
rename to v0.11.0python_final/a10server/doc/build/doctrees/modules.doctree
diff --git a/a10server/doc/build/html/.buildinfo b/v0.11.0python_final/a10server/doc/build/html/.buildinfo
similarity index 100%
rename from a10server/doc/build/html/.buildinfo
rename to v0.11.0python_final/a10server/doc/build/html/.buildinfo
diff --git a/a10server/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.analytics.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.analytics.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.analytics.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.analytics.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.attestation.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.attestation.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.attestation.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.attestation.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.claims.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.claims.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.claims.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.claims.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.announce.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.core.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.core.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.core.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.core.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.log.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.log.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.log.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.log.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.db.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.db.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.db.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.elements.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.elements.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.elements.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.elements.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.hashes.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.hashes.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.hashes.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.hashes.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.policies.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.policies.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.policies.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.policies.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.protocols.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.protocols.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.protocols.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.results.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.results.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.results.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.results.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.claim.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.claim.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.claim.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.claim.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.constants.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.constants.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.constants.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.constants.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.convenience.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.convenience.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.convenience.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.convenience.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.identity.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.identity.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.identity.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.identity.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.result.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.result.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.result.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.result.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.returncode.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.returncode.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.returncode.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.returncode.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.rst.txt
diff --git a/a10server/doc/build/html/_sources/a10.structures.timestamps.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.timestamps.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/a10.structures.timestamps.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/a10.structures.timestamps.rst.txt
diff --git a/a10server/doc/build/html/_sources/index.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/index.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/index.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/index.rst.txt
diff --git a/a10server/doc/build/html/_sources/modules.rst.txt b/v0.11.0python_final/a10server/doc/build/html/_sources/modules.rst.txt
similarity index 100%
rename from a10server/doc/build/html/_sources/modules.rst.txt
rename to v0.11.0python_final/a10server/doc/build/html/_sources/modules.rst.txt
diff --git a/a10server/doc/build/html/_static/basic.css b/v0.11.0python_final/a10server/doc/build/html/_static/basic.css
similarity index 100%
rename from a10server/doc/build/html/_static/basic.css
rename to v0.11.0python_final/a10server/doc/build/html/_static/basic.css
diff --git a/a10server/doc/build/html/_static/classic.css b/v0.11.0python_final/a10server/doc/build/html/_static/classic.css
similarity index 100%
rename from a10server/doc/build/html/_static/classic.css
rename to v0.11.0python_final/a10server/doc/build/html/_static/classic.css
diff --git a/a10server/doc/build/html/_static/doctools.js b/v0.11.0python_final/a10server/doc/build/html/_static/doctools.js
similarity index 100%
rename from a10server/doc/build/html/_static/doctools.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/doctools.js
diff --git a/a10server/doc/build/html/_static/documentation_options.js b/v0.11.0python_final/a10server/doc/build/html/_static/documentation_options.js
similarity index 100%
rename from a10server/doc/build/html/_static/documentation_options.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/documentation_options.js
diff --git a/a10server/doc/build/html/_static/file.png b/v0.11.0python_final/a10server/doc/build/html/_static/file.png
similarity index 100%
rename from a10server/doc/build/html/_static/file.png
rename to v0.11.0python_final/a10server/doc/build/html/_static/file.png
diff --git a/a10server/doc/build/html/_static/jquery.js b/v0.11.0python_final/a10server/doc/build/html/_static/jquery.js
similarity index 100%
rename from a10server/doc/build/html/_static/jquery.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/jquery.js
diff --git a/a10server/doc/build/html/_static/language_data.js b/v0.11.0python_final/a10server/doc/build/html/_static/language_data.js
similarity index 100%
rename from a10server/doc/build/html/_static/language_data.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/language_data.js
diff --git a/a10server/doc/build/html/_static/minus.png b/v0.11.0python_final/a10server/doc/build/html/_static/minus.png
similarity index 100%
rename from a10server/doc/build/html/_static/minus.png
rename to v0.11.0python_final/a10server/doc/build/html/_static/minus.png
diff --git a/a10server/doc/build/html/_static/plus.png b/v0.11.0python_final/a10server/doc/build/html/_static/plus.png
similarity index 100%
rename from a10server/doc/build/html/_static/plus.png
rename to v0.11.0python_final/a10server/doc/build/html/_static/plus.png
diff --git a/a10server/doc/build/html/_static/pygments.css b/v0.11.0python_final/a10server/doc/build/html/_static/pygments.css
similarity index 100%
rename from a10server/doc/build/html/_static/pygments.css
rename to v0.11.0python_final/a10server/doc/build/html/_static/pygments.css
diff --git a/a10server/doc/build/html/_static/searchtools.js b/v0.11.0python_final/a10server/doc/build/html/_static/searchtools.js
similarity index 100%
rename from a10server/doc/build/html/_static/searchtools.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/searchtools.js
diff --git a/a10server/doc/build/html/_static/sidebar.js b/v0.11.0python_final/a10server/doc/build/html/_static/sidebar.js
similarity index 100%
rename from a10server/doc/build/html/_static/sidebar.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/sidebar.js
diff --git a/a10server/doc/build/html/_static/underscore.js b/v0.11.0python_final/a10server/doc/build/html/_static/underscore.js
similarity index 100%
rename from a10server/doc/build/html/_static/underscore.js
rename to v0.11.0python_final/a10server/doc/build/html/_static/underscore.js
diff --git a/a10server/doc/build/html/a10.asvr.analytics.elementanalytics.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.analytics.elementanalytics.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.analytics.elementanalytics.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.analytics.elementanalytics.html
diff --git a/a10server/doc/build/html/a10.asvr.analytics.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.analytics.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.analytics.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.analytics.html
diff --git a/a10server/doc/build/html/a10.asvr.attestation.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.attestation.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.attestation.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.attestation.html
diff --git a/a10server/doc/build/html/a10.asvr.claims.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.claims.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.claims.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.claims.html
diff --git a/a10server/doc/build/html/a10.asvr.db.announce.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.announce.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.announce.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.announce.html
diff --git a/a10server/doc/build/html/a10.asvr.db.configuration.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.configuration.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.configuration.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.configuration.html
diff --git a/a10server/doc/build/html/a10.asvr.db.core.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.core.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.core.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.core.html
diff --git a/a10server/doc/build/html/a10.asvr.db.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.html
diff --git a/a10server/doc/build/html/a10.asvr.db.log.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.log.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.log.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.log.html
diff --git a/a10server/doc/build/html/a10.asvr.db.mqtt.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.mqtt.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.db.mqtt.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.db.mqtt.html
diff --git a/a10server/doc/build/html/a10.asvr.elements.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.elements.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.elements.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.elements.html
diff --git a/a10server/doc/build/html/a10.asvr.expectedvalues.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.expectedvalues.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.expectedvalues.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.expectedvalues.html
diff --git a/a10server/doc/build/html/a10.asvr.hashes.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.hashes.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.hashes.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.hashes.html
diff --git a/a10server/doc/build/html/a10.asvr.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.html
diff --git a/a10server/doc/build/html/a10.asvr.policies.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.policies.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.policies.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.policies.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.A10ContainerImage.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.A10HttpRest.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10HttpRest.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.A10HttpRest.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10HttpRest.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.html
diff --git a/a10server/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
diff --git a/a10server/doc/build/html/a10.asvr.results.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.results.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.results.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.results.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.baserule.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.baserule.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.baserule.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.baserule.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.nullrules.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.nullrules.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.nullrules.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.nullrules.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.rule_dispatcher.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.rule_dispatcher.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.rule_dispatcher.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.rule_dispatcher.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.tpm2rules.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.tpm2rules.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.tpm2rules.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.tpm2rules.html
diff --git a/a10server/doc/build/html/a10.asvr.rules.uefi.html b/v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.uefi.html
similarity index 100%
rename from a10server/doc/build/html/a10.asvr.rules.uefi.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.asvr.rules.uefi.html
diff --git a/a10server/doc/build/html/a10.html b/v0.11.0python_final/a10server/doc/build/html/a10.html
similarity index 100%
rename from a10server/doc/build/html/a10.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.html
diff --git a/a10server/doc/build/html/a10.structures.claim.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.claim.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.claim.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.claim.html
diff --git a/a10server/doc/build/html/a10.structures.constants.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.constants.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.constants.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.constants.html
diff --git a/a10server/doc/build/html/a10.structures.convenience.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.convenience.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.convenience.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.convenience.html
diff --git a/a10server/doc/build/html/a10.structures.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.html
diff --git a/a10server/doc/build/html/a10.structures.identity.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.identity.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.identity.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.identity.html
diff --git a/a10server/doc/build/html/a10.structures.result.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.result.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.result.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.result.html
diff --git a/a10server/doc/build/html/a10.structures.returncode.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.returncode.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.returncode.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.returncode.html
diff --git a/a10server/doc/build/html/a10.structures.timestamps.html b/v0.11.0python_final/a10server/doc/build/html/a10.structures.timestamps.html
similarity index 100%
rename from a10server/doc/build/html/a10.structures.timestamps.html
rename to v0.11.0python_final/a10server/doc/build/html/a10.structures.timestamps.html
diff --git a/a10server/doc/build/html/genindex.html b/v0.11.0python_final/a10server/doc/build/html/genindex.html
similarity index 100%
rename from a10server/doc/build/html/genindex.html
rename to v0.11.0python_final/a10server/doc/build/html/genindex.html
diff --git a/a10server/doc/build/html/index.html b/v0.11.0python_final/a10server/doc/build/html/index.html
similarity index 100%
rename from a10server/doc/build/html/index.html
rename to v0.11.0python_final/a10server/doc/build/html/index.html
diff --git a/a10server/doc/build/html/modules.html b/v0.11.0python_final/a10server/doc/build/html/modules.html
similarity index 100%
rename from a10server/doc/build/html/modules.html
rename to v0.11.0python_final/a10server/doc/build/html/modules.html
diff --git a/a10server/doc/build/html/objects.inv b/v0.11.0python_final/a10server/doc/build/html/objects.inv
similarity index 100%
rename from a10server/doc/build/html/objects.inv
rename to v0.11.0python_final/a10server/doc/build/html/objects.inv
diff --git a/a10server/doc/build/html/py-modindex.html b/v0.11.0python_final/a10server/doc/build/html/py-modindex.html
similarity index 100%
rename from a10server/doc/build/html/py-modindex.html
rename to v0.11.0python_final/a10server/doc/build/html/py-modindex.html
diff --git a/a10server/doc/build/html/search.html b/v0.11.0python_final/a10server/doc/build/html/search.html
similarity index 100%
rename from a10server/doc/build/html/search.html
rename to v0.11.0python_final/a10server/doc/build/html/search.html
diff --git a/a10server/doc/build/html/searchindex.js b/v0.11.0python_final/a10server/doc/build/html/searchindex.js
similarity index 100%
rename from a10server/doc/build/html/searchindex.js
rename to v0.11.0python_final/a10server/doc/build/html/searchindex.js
diff --git a/a10server/doc/source/a10.asvr.analytics.elementanalytics.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.analytics.elementanalytics.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.analytics.elementanalytics.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.analytics.elementanalytics.rst
diff --git a/a10server/doc/source/a10.asvr.analytics.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.analytics.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.analytics.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.analytics.rst
diff --git a/a10server/doc/source/a10.asvr.attestation.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.attestation.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.attestation.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.attestation.rst
diff --git a/a10server/doc/source/a10.asvr.claims.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.claims.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.claims.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.claims.rst
diff --git a/a10server/doc/source/a10.asvr.db.announce.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.announce.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.announce.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.announce.rst
diff --git a/a10server/doc/source/a10.asvr.db.configuration.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.configuration.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.configuration.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.configuration.rst
diff --git a/a10server/doc/source/a10.asvr.db.core.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.core.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.core.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.core.rst
diff --git a/a10server/doc/source/a10.asvr.db.log.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.log.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.log.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.log.rst
diff --git a/a10server/doc/source/a10.asvr.db.mqtt.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.mqtt.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.mqtt.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.mqtt.rst
diff --git a/a10server/doc/source/a10.asvr.db.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.db.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.db.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.db.rst
diff --git a/a10server/doc/source/a10.asvr.elements.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.elements.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.elements.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.elements.rst
diff --git a/a10server/doc/source/a10.asvr.expectedvalues.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.expectedvalues.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.expectedvalues.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.expectedvalues.rst
diff --git a/a10server/doc/source/a10.asvr.hashes.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.hashes.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.hashes.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.hashes.rst
diff --git a/a10server/doc/source/a10.asvr.policies.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.policies.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.policies.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.policies.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.A10ContainerImage.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ContainerImage.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.A10ContainerImage.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ContainerImage.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.A10DummyProtocol.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.A10HttpRest.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10HttpRest.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.A10HttpRest.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10HttpRest.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.A10ProtocolBase.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.protocol_dispatcher.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
diff --git a/a10server/doc/source/a10.asvr.protocols.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.protocols.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.protocols.rst
diff --git a/a10server/doc/source/a10.asvr.results.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.results.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.results.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.results.rst
diff --git a/a10server/doc/source/a10.asvr.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rst
diff --git a/a10server/doc/source/a10.asvr.rules.baserule.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.baserule.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.baserule.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.baserule.rst
diff --git a/a10server/doc/source/a10.asvr.rules.nullrules.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.nullrules.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.nullrules.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.nullrules.rst
diff --git a/a10server/doc/source/a10.asvr.rules.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.rst
diff --git a/a10server/doc/source/a10.asvr.rules.rule_dispatcher.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.rule_dispatcher.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.rule_dispatcher.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.rule_dispatcher.rst
diff --git a/a10server/doc/source/a10.asvr.rules.tpm2rules.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.tpm2rules.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.tpm2rules.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.tpm2rules.rst
diff --git a/a10server/doc/source/a10.asvr.rules.uefi.rst b/v0.11.0python_final/a10server/doc/source/a10.asvr.rules.uefi.rst
similarity index 100%
rename from a10server/doc/source/a10.asvr.rules.uefi.rst
rename to v0.11.0python_final/a10server/doc/source/a10.asvr.rules.uefi.rst
diff --git a/a10server/doc/source/a10.rst b/v0.11.0python_final/a10server/doc/source/a10.rst
similarity index 100%
rename from a10server/doc/source/a10.rst
rename to v0.11.0python_final/a10server/doc/source/a10.rst
diff --git a/a10server/doc/source/a10.structures.claim.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.claim.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.claim.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.claim.rst
diff --git a/a10server/doc/source/a10.structures.constants.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.constants.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.constants.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.constants.rst
diff --git a/a10server/doc/source/a10.structures.convenience.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.convenience.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.convenience.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.convenience.rst
diff --git a/a10server/doc/source/a10.structures.identity.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.identity.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.identity.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.identity.rst
diff --git a/a10server/doc/source/a10.structures.result.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.result.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.result.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.result.rst
diff --git a/a10server/doc/source/a10.structures.returncode.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.returncode.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.returncode.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.returncode.rst
diff --git a/a10server/doc/source/a10.structures.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.rst
diff --git a/a10server/doc/source/a10.structures.timestamps.rst b/v0.11.0python_final/a10server/doc/source/a10.structures.timestamps.rst
similarity index 100%
rename from a10server/doc/source/a10.structures.timestamps.rst
rename to v0.11.0python_final/a10server/doc/source/a10.structures.timestamps.rst
diff --git a/a10server/doc/source/conf.py b/v0.11.0python_final/a10server/doc/source/conf.py
similarity index 100%
rename from a10server/doc/source/conf.py
rename to v0.11.0python_final/a10server/doc/source/conf.py
diff --git a/a10server/doc/source/index.rst b/v0.11.0python_final/a10server/doc/source/index.rst
similarity index 100%
rename from a10server/doc/source/index.rst
rename to v0.11.0python_final/a10server/doc/source/index.rst
diff --git a/a10server/doc/source/modules.rst b/v0.11.0python_final/a10server/doc/source/modules.rst
similarity index 100%
rename from a10server/doc/source/modules.rst
rename to v0.11.0python_final/a10server/doc/source/modules.rst
diff --git a/a10server/reinstall b/v0.11.0python_final/a10server/reinstall
similarity index 100%
rename from a10server/reinstall
rename to v0.11.0python_final/a10server/reinstall
diff --git a/a10server/requirements.txt b/v0.11.0python_final/a10server/requirements.txt
similarity index 100%
rename from a10server/requirements.txt
rename to v0.11.0python_final/a10server/requirements.txt
diff --git a/a10server/setup.py b/v0.11.0python_final/a10server/setup.py
similarity index 100%
rename from a10server/setup.py
rename to v0.11.0python_final/a10server/setup.py
diff --git a/a10structures/.pypirc_2 b/v0.11.0python_final/a10structures/.pypirc_2
similarity index 100%
rename from a10structures/.pypirc_2
rename to v0.11.0python_final/a10structures/.pypirc_2
diff --git a/a10structures/README.md b/v0.11.0python_final/a10structures/README.md
similarity index 100%
rename from a10structures/README.md
rename to v0.11.0python_final/a10structures/README.md
diff --git a/a10structures/a10/__init__.py b/v0.11.0python_final/a10structures/a10/__init__.py
similarity index 100%
rename from a10structures/a10/__init__.py
rename to v0.11.0python_final/a10structures/a10/__init__.py
diff --git a/a10structures/a10/structures/__init__.py b/v0.11.0python_final/a10structures/a10/structures/__init__.py
similarity index 100%
rename from a10structures/a10/structures/__init__.py
rename to v0.11.0python_final/a10structures/a10/structures/__init__.py
diff --git a/a10structures/a10/structures/claim.py b/v0.11.0python_final/a10structures/a10/structures/claim.py
similarity index 100%
rename from a10structures/a10/structures/claim.py
rename to v0.11.0python_final/a10structures/a10/structures/claim.py
diff --git a/a10structures/a10/structures/constants.py b/v0.11.0python_final/a10structures/a10/structures/constants.py
similarity index 100%
rename from a10structures/a10/structures/constants.py
rename to v0.11.0python_final/a10structures/a10/structures/constants.py
diff --git a/a10structures/a10/structures/convenience.py b/v0.11.0python_final/a10structures/a10/structures/convenience.py
similarity index 100%
rename from a10structures/a10/structures/convenience.py
rename to v0.11.0python_final/a10structures/a10/structures/convenience.py
diff --git a/a10structures/a10/structures/identity.py b/v0.11.0python_final/a10structures/a10/structures/identity.py
similarity index 100%
rename from a10structures/a10/structures/identity.py
rename to v0.11.0python_final/a10structures/a10/structures/identity.py
diff --git a/a10structures/a10/structures/result.py b/v0.11.0python_final/a10structures/a10/structures/result.py
similarity index 100%
rename from a10structures/a10/structures/result.py
rename to v0.11.0python_final/a10structures/a10/structures/result.py
diff --git a/a10structures/a10/structures/returncode.py b/v0.11.0python_final/a10structures/a10/structures/returncode.py
similarity index 100%
rename from a10structures/a10/structures/returncode.py
rename to v0.11.0python_final/a10structures/a10/structures/returncode.py
diff --git a/a10structures/a10/structures/timestamps.py b/v0.11.0python_final/a10structures/a10/structures/timestamps.py
similarity index 100%
rename from a10structures/a10/structures/timestamps.py
rename to v0.11.0python_final/a10structures/a10/structures/timestamps.py
diff --git a/a10structures/a10/utilities/__init__.py b/v0.11.0python_final/a10structures/a10/utilities/__init__.py
similarity index 100%
rename from a10structures/a10/utilities/__init__.py
rename to v0.11.0python_final/a10structures/a10/utilities/__init__.py
diff --git a/a10structures/a10/utilities/tpmoperations.py b/v0.11.0python_final/a10structures/a10/utilities/tpmoperations.py
similarity index 100%
rename from a10structures/a10/utilities/tpmoperations.py
rename to v0.11.0python_final/a10structures/a10/utilities/tpmoperations.py
diff --git a/a10structures/build/lib/a10/__init__.py b/v0.11.0python_final/a10structures/build/lib/a10/__init__.py
similarity index 100%
rename from a10structures/build/lib/a10/__init__.py
rename to v0.11.0python_final/a10structures/build/lib/a10/__init__.py
diff --git a/a10structures/build/lib/a10/structures/__init__.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/__init__.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/__init__.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/__init__.py
diff --git a/a10structures/build/lib/a10/structures/claim.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/claim.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/claim.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/claim.py
diff --git a/a10structures/build/lib/a10/structures/constants.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/constants.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/constants.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/constants.py
diff --git a/a10structures/build/lib/a10/structures/convenience.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/convenience.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/convenience.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/convenience.py
diff --git a/a10structures/build/lib/a10/structures/identity.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/identity.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/identity.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/identity.py
diff --git a/a10structures/build/lib/a10/structures/result.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/result.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/result.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/result.py
diff --git a/a10structures/build/lib/a10/structures/returncode.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/returncode.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/returncode.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/returncode.py
diff --git a/a10structures/build/lib/a10/structures/timestamps.py b/v0.11.0python_final/a10structures/build/lib/a10/structures/timestamps.py
similarity index 100%
rename from a10structures/build/lib/a10/structures/timestamps.py
rename to v0.11.0python_final/a10structures/build/lib/a10/structures/timestamps.py
diff --git a/a10structures/build/lib/a10/utilities/__init__.py b/v0.11.0python_final/a10structures/build/lib/a10/utilities/__init__.py
similarity index 100%
rename from a10structures/build/lib/a10/utilities/__init__.py
rename to v0.11.0python_final/a10structures/build/lib/a10/utilities/__init__.py
diff --git a/a10structures/build/lib/a10/utilities/tpmoperations.py b/v0.11.0python_final/a10structures/build/lib/a10/utilities/tpmoperations.py
similarity index 100%
rename from a10structures/build/lib/a10/utilities/tpmoperations.py
rename to v0.11.0python_final/a10structures/build/lib/a10/utilities/tpmoperations.py
diff --git a/a10structures/doc/Makefile b/v0.11.0python_final/a10structures/doc/Makefile
similarity index 100%
rename from a10structures/doc/Makefile
rename to v0.11.0python_final/a10structures/doc/Makefile
diff --git a/a10structures/doc/build/doctrees/a10.asvr.analytics.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.analytics.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.analytics.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.analytics.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.analytics.elementanalytics.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.attestation.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.attestation.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.attestation.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.attestation.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.claims.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.claims.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.claims.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.claims.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.announce.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.announce.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.announce.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.announce.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.configuration.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.configuration.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.configuration.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.configuration.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.core.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.core.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.core.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.core.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.log.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.log.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.log.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.log.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.db.mqtt.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.mqtt.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.db.mqtt.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.db.mqtt.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.elements.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.elements.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.elements.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.elements.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.expectedvalues.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.expectedvalues.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.expectedvalues.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.expectedvalues.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.hashes.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.hashes.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.hashes.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.hashes.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.policies.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.policies.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.policies.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.policies.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ArduinoUSB.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ContainerImage.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10DummyProtocol.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10HttpRest.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.A10ProtocolBase.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.protocols.protocol_dispatcher.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.results.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.results.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.results.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.results.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.baserule.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.baserule.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.baserule.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.baserule.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.nullrules.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.nullrules.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.rule_dispatcher.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.tpm2rules.doctree
diff --git a/a10structures/doc/build/doctrees/a10.asvr.rules.uefi.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.uefi.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.asvr.rules.uefi.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.asvr.rules.uefi.doctree
diff --git a/a10structures/doc/build/doctrees/a10.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.claim.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.claim.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.claim.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.claim.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.constants.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.constants.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.constants.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.constants.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.convenience.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.convenience.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.convenience.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.convenience.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.identity.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.identity.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.identity.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.identity.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.result.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.result.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.result.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.result.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.returncode.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.returncode.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.returncode.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.returncode.doctree
diff --git a/a10structures/doc/build/doctrees/a10.structures.timestamps.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.timestamps.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/a10.structures.timestamps.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/a10.structures.timestamps.doctree
diff --git a/a10structures/doc/build/doctrees/environment.pickle b/v0.11.0python_final/a10structures/doc/build/doctrees/environment.pickle
similarity index 100%
rename from a10structures/doc/build/doctrees/environment.pickle
rename to v0.11.0python_final/a10structures/doc/build/doctrees/environment.pickle
diff --git a/a10structures/doc/build/doctrees/index.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/index.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/index.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/index.doctree
diff --git a/a10structures/doc/build/doctrees/modules.doctree b/v0.11.0python_final/a10structures/doc/build/doctrees/modules.doctree
similarity index 100%
rename from a10structures/doc/build/doctrees/modules.doctree
rename to v0.11.0python_final/a10structures/doc/build/doctrees/modules.doctree
diff --git a/a10structures/doc/build/html/.buildinfo b/v0.11.0python_final/a10structures/doc/build/html/.buildinfo
similarity index 100%
rename from a10structures/doc/build/html/.buildinfo
rename to v0.11.0python_final/a10structures/doc/build/html/.buildinfo
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.analytics.elementanalytics.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.analytics.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.analytics.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.analytics.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.analytics.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.attestation.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.attestation.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.attestation.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.attestation.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.claims.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.claims.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.claims.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.claims.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.announce.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.announce.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.configuration.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.core.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.core.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.core.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.core.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.log.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.log.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.log.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.log.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.mqtt.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.db.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.db.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.db.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.elements.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.elements.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.elements.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.elements.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.expectedvalues.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.hashes.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.hashes.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.hashes.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.hashes.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.policies.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.policies.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.policies.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.policies.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ArduinoUSB.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ContainerImage.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10DummyProtocol.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10HttpRest.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.A10ProtocolBase.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.protocol_dispatcher.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.protocols.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.protocols.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.protocols.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.results.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.results.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.results.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.results.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.baserule.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.nullrules.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.rule_dispatcher.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.tpm2rules.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.asvr.rules.uefi.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.claim.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.claim.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.claim.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.claim.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.constants.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.constants.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.constants.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.constants.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.convenience.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.convenience.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.convenience.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.convenience.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.identity.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.identity.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.identity.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.identity.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.result.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.result.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.result.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.result.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.returncode.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.returncode.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.returncode.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.returncode.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.rst.txt
diff --git a/a10structures/doc/build/html/_sources/a10.structures.timestamps.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.timestamps.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/a10.structures.timestamps.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/a10.structures.timestamps.rst.txt
diff --git a/a10structures/doc/build/html/_sources/index.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/index.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/index.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/index.rst.txt
diff --git a/a10structures/doc/build/html/_sources/modules.rst.txt b/v0.11.0python_final/a10structures/doc/build/html/_sources/modules.rst.txt
similarity index 100%
rename from a10structures/doc/build/html/_sources/modules.rst.txt
rename to v0.11.0python_final/a10structures/doc/build/html/_sources/modules.rst.txt
diff --git a/a10structures/doc/build/html/_static/basic.css b/v0.11.0python_final/a10structures/doc/build/html/_static/basic.css
similarity index 100%
rename from a10structures/doc/build/html/_static/basic.css
rename to v0.11.0python_final/a10structures/doc/build/html/_static/basic.css
diff --git a/a10structures/doc/build/html/_static/classic.css b/v0.11.0python_final/a10structures/doc/build/html/_static/classic.css
similarity index 100%
rename from a10structures/doc/build/html/_static/classic.css
rename to v0.11.0python_final/a10structures/doc/build/html/_static/classic.css
diff --git a/a10structures/doc/build/html/_static/doctools.js b/v0.11.0python_final/a10structures/doc/build/html/_static/doctools.js
similarity index 100%
rename from a10structures/doc/build/html/_static/doctools.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/doctools.js
diff --git a/a10structures/doc/build/html/_static/documentation_options.js b/v0.11.0python_final/a10structures/doc/build/html/_static/documentation_options.js
similarity index 100%
rename from a10structures/doc/build/html/_static/documentation_options.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/documentation_options.js
diff --git a/a10structures/doc/build/html/_static/file.png b/v0.11.0python_final/a10structures/doc/build/html/_static/file.png
similarity index 100%
rename from a10structures/doc/build/html/_static/file.png
rename to v0.11.0python_final/a10structures/doc/build/html/_static/file.png
diff --git a/a10structures/doc/build/html/_static/jquery.js b/v0.11.0python_final/a10structures/doc/build/html/_static/jquery.js
similarity index 100%
rename from a10structures/doc/build/html/_static/jquery.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/jquery.js
diff --git a/a10structures/doc/build/html/_static/language_data.js b/v0.11.0python_final/a10structures/doc/build/html/_static/language_data.js
similarity index 100%
rename from a10structures/doc/build/html/_static/language_data.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/language_data.js
diff --git a/a10structures/doc/build/html/_static/minus.png b/v0.11.0python_final/a10structures/doc/build/html/_static/minus.png
similarity index 100%
rename from a10structures/doc/build/html/_static/minus.png
rename to v0.11.0python_final/a10structures/doc/build/html/_static/minus.png
diff --git a/a10structures/doc/build/html/_static/plus.png b/v0.11.0python_final/a10structures/doc/build/html/_static/plus.png
similarity index 100%
rename from a10structures/doc/build/html/_static/plus.png
rename to v0.11.0python_final/a10structures/doc/build/html/_static/plus.png
diff --git a/a10structures/doc/build/html/_static/pygments.css b/v0.11.0python_final/a10structures/doc/build/html/_static/pygments.css
similarity index 100%
rename from a10structures/doc/build/html/_static/pygments.css
rename to v0.11.0python_final/a10structures/doc/build/html/_static/pygments.css
diff --git a/a10structures/doc/build/html/_static/searchtools.js b/v0.11.0python_final/a10structures/doc/build/html/_static/searchtools.js
similarity index 100%
rename from a10structures/doc/build/html/_static/searchtools.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/searchtools.js
diff --git a/a10structures/doc/build/html/_static/sidebar.js b/v0.11.0python_final/a10structures/doc/build/html/_static/sidebar.js
similarity index 100%
rename from a10structures/doc/build/html/_static/sidebar.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/sidebar.js
diff --git a/a10structures/doc/build/html/_static/underscore.js b/v0.11.0python_final/a10structures/doc/build/html/_static/underscore.js
similarity index 100%
rename from a10structures/doc/build/html/_static/underscore.js
rename to v0.11.0python_final/a10structures/doc/build/html/_static/underscore.js
diff --git a/a10structures/doc/build/html/a10.asvr.analytics.elementanalytics.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.analytics.elementanalytics.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.analytics.elementanalytics.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.analytics.elementanalytics.html
diff --git a/a10structures/doc/build/html/a10.asvr.analytics.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.analytics.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.analytics.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.analytics.html
diff --git a/a10structures/doc/build/html/a10.asvr.attestation.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.attestation.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.attestation.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.attestation.html
diff --git a/a10structures/doc/build/html/a10.asvr.claims.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.claims.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.claims.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.claims.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.announce.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.announce.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.announce.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.announce.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.configuration.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.configuration.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.configuration.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.configuration.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.core.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.core.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.core.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.core.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.log.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.log.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.log.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.log.html
diff --git a/a10structures/doc/build/html/a10.asvr.db.mqtt.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.mqtt.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.db.mqtt.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.db.mqtt.html
diff --git a/a10structures/doc/build/html/a10.asvr.elements.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.elements.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.elements.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.elements.html
diff --git a/a10structures/doc/build/html/a10.asvr.expectedvalues.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.expectedvalues.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.expectedvalues.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.expectedvalues.html
diff --git a/a10structures/doc/build/html/a10.asvr.hashes.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.hashes.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.hashes.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.hashes.html
diff --git a/a10structures/doc/build/html/a10.asvr.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.html
diff --git a/a10structures/doc/build/html/a10.asvr.policies.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.policies.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.policies.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.policies.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ArduinoUSB.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.A10ContainerImage.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ContainerImage.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10DummyProtocol.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.A10HttpRest.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10HttpRest.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.A10HttpRest.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10HttpRest.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.A10ProtocolBase.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.html
diff --git a/a10structures/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.protocols.protocol_dispatcher.html
diff --git a/a10structures/doc/build/html/a10.asvr.results.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.results.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.results.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.results.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.baserule.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.baserule.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.baserule.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.baserule.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.nullrules.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.nullrules.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.nullrules.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.nullrules.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.rule_dispatcher.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.rule_dispatcher.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.rule_dispatcher.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.rule_dispatcher.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.tpm2rules.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.tpm2rules.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.tpm2rules.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.tpm2rules.html
diff --git a/a10structures/doc/build/html/a10.asvr.rules.uefi.html b/v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.uefi.html
similarity index 100%
rename from a10structures/doc/build/html/a10.asvr.rules.uefi.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.asvr.rules.uefi.html
diff --git a/a10structures/doc/build/html/a10.html b/v0.11.0python_final/a10structures/doc/build/html/a10.html
similarity index 100%
rename from a10structures/doc/build/html/a10.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.html
diff --git a/a10structures/doc/build/html/a10.structures.claim.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.claim.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.claim.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.claim.html
diff --git a/a10structures/doc/build/html/a10.structures.constants.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.constants.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.constants.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.constants.html
diff --git a/a10structures/doc/build/html/a10.structures.convenience.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.convenience.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.convenience.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.convenience.html
diff --git a/a10structures/doc/build/html/a10.structures.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.html
diff --git a/a10structures/doc/build/html/a10.structures.identity.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.identity.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.identity.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.identity.html
diff --git a/a10structures/doc/build/html/a10.structures.result.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.result.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.result.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.result.html
diff --git a/a10structures/doc/build/html/a10.structures.returncode.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.returncode.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.returncode.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.returncode.html
diff --git a/a10structures/doc/build/html/a10.structures.timestamps.html b/v0.11.0python_final/a10structures/doc/build/html/a10.structures.timestamps.html
similarity index 100%
rename from a10structures/doc/build/html/a10.structures.timestamps.html
rename to v0.11.0python_final/a10structures/doc/build/html/a10.structures.timestamps.html
diff --git a/a10structures/doc/build/html/genindex.html b/v0.11.0python_final/a10structures/doc/build/html/genindex.html
similarity index 100%
rename from a10structures/doc/build/html/genindex.html
rename to v0.11.0python_final/a10structures/doc/build/html/genindex.html
diff --git a/a10structures/doc/build/html/index.html b/v0.11.0python_final/a10structures/doc/build/html/index.html
similarity index 100%
rename from a10structures/doc/build/html/index.html
rename to v0.11.0python_final/a10structures/doc/build/html/index.html
diff --git a/a10structures/doc/build/html/modules.html b/v0.11.0python_final/a10structures/doc/build/html/modules.html
similarity index 100%
rename from a10structures/doc/build/html/modules.html
rename to v0.11.0python_final/a10structures/doc/build/html/modules.html
diff --git a/a10structures/doc/build/html/objects.inv b/v0.11.0python_final/a10structures/doc/build/html/objects.inv
similarity index 100%
rename from a10structures/doc/build/html/objects.inv
rename to v0.11.0python_final/a10structures/doc/build/html/objects.inv
diff --git a/a10structures/doc/build/html/py-modindex.html b/v0.11.0python_final/a10structures/doc/build/html/py-modindex.html
similarity index 100%
rename from a10structures/doc/build/html/py-modindex.html
rename to v0.11.0python_final/a10structures/doc/build/html/py-modindex.html
diff --git a/a10structures/doc/build/html/search.html b/v0.11.0python_final/a10structures/doc/build/html/search.html
similarity index 100%
rename from a10structures/doc/build/html/search.html
rename to v0.11.0python_final/a10structures/doc/build/html/search.html
diff --git a/a10structures/doc/build/html/searchindex.js b/v0.11.0python_final/a10structures/doc/build/html/searchindex.js
similarity index 100%
rename from a10structures/doc/build/html/searchindex.js
rename to v0.11.0python_final/a10structures/doc/build/html/searchindex.js
diff --git a/a10structures/doc/source/a10.asvr.analytics.elementanalytics.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.analytics.elementanalytics.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.analytics.elementanalytics.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.analytics.elementanalytics.rst
diff --git a/a10structures/doc/source/a10.asvr.analytics.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.analytics.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.analytics.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.analytics.rst
diff --git a/a10structures/doc/source/a10.asvr.attestation.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.attestation.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.attestation.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.attestation.rst
diff --git a/a10structures/doc/source/a10.asvr.claims.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.claims.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.claims.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.claims.rst
diff --git a/a10structures/doc/source/a10.asvr.db.announce.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.announce.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.announce.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.announce.rst
diff --git a/a10structures/doc/source/a10.asvr.db.configuration.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.configuration.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.configuration.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.configuration.rst
diff --git a/a10structures/doc/source/a10.asvr.db.core.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.core.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.core.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.core.rst
diff --git a/a10structures/doc/source/a10.asvr.db.log.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.log.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.log.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.log.rst
diff --git a/a10structures/doc/source/a10.asvr.db.mqtt.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.mqtt.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.mqtt.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.mqtt.rst
diff --git a/a10structures/doc/source/a10.asvr.db.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.db.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.db.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.db.rst
diff --git a/a10structures/doc/source/a10.asvr.elements.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.elements.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.elements.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.elements.rst
diff --git a/a10structures/doc/source/a10.asvr.expectedvalues.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.expectedvalues.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.expectedvalues.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.expectedvalues.rst
diff --git a/a10structures/doc/source/a10.asvr.hashes.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.hashes.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.hashes.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.hashes.rst
diff --git a/a10structures/doc/source/a10.asvr.policies.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.policies.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.policies.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.policies.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ArduinoUSB.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.A10ContainerImage.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ContainerImage.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.A10ContainerImage.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ContainerImage.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.A10DummyProtocol.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10DummyProtocol.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.A10HttpRest.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10HttpRest.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.A10HttpRest.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10HttpRest.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.A10ProtocolBase.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.A10ProtocolBase.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.protocol_dispatcher.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.protocol_dispatcher.rst
diff --git a/a10structures/doc/source/a10.asvr.protocols.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.protocols.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.protocols.rst
diff --git a/a10structures/doc/source/a10.asvr.results.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.results.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.results.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.results.rst
diff --git a/a10structures/doc/source/a10.asvr.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.baserule.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.baserule.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.baserule.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.baserule.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.nullrules.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.nullrules.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.nullrules.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.nullrules.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.rule_dispatcher.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.rule_dispatcher.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.rule_dispatcher.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.rule_dispatcher.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.tpm2rules.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.tpm2rules.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.tpm2rules.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.tpm2rules.rst
diff --git a/a10structures/doc/source/a10.asvr.rules.uefi.rst b/v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.uefi.rst
similarity index 100%
rename from a10structures/doc/source/a10.asvr.rules.uefi.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.asvr.rules.uefi.rst
diff --git a/a10structures/doc/source/a10.rst b/v0.11.0python_final/a10structures/doc/source/a10.rst
similarity index 100%
rename from a10structures/doc/source/a10.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.rst
diff --git a/a10structures/doc/source/a10.structures.claim.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.claim.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.claim.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.claim.rst
diff --git a/a10structures/doc/source/a10.structures.constants.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.constants.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.constants.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.constants.rst
diff --git a/a10structures/doc/source/a10.structures.convenience.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.convenience.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.convenience.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.convenience.rst
diff --git a/a10structures/doc/source/a10.structures.identity.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.identity.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.identity.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.identity.rst
diff --git a/a10structures/doc/source/a10.structures.result.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.result.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.result.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.result.rst
diff --git a/a10structures/doc/source/a10.structures.returncode.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.returncode.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.returncode.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.returncode.rst
diff --git a/a10structures/doc/source/a10.structures.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.rst
diff --git a/a10structures/doc/source/a10.structures.timestamps.rst b/v0.11.0python_final/a10structures/doc/source/a10.structures.timestamps.rst
similarity index 100%
rename from a10structures/doc/source/a10.structures.timestamps.rst
rename to v0.11.0python_final/a10structures/doc/source/a10.structures.timestamps.rst
diff --git a/a10structures/doc/source/conf.py b/v0.11.0python_final/a10structures/doc/source/conf.py
similarity index 100%
rename from a10structures/doc/source/conf.py
rename to v0.11.0python_final/a10structures/doc/source/conf.py
diff --git a/a10structures/doc/source/index.rst b/v0.11.0python_final/a10structures/doc/source/index.rst
similarity index 100%
rename from a10structures/doc/source/index.rst
rename to v0.11.0python_final/a10structures/doc/source/index.rst
diff --git a/a10structures/doc/source/modules.rst b/v0.11.0python_final/a10structures/doc/source/modules.rst
similarity index 100%
rename from a10structures/doc/source/modules.rst
rename to v0.11.0python_final/a10structures/doc/source/modules.rst
diff --git a/a10structures/reinstall b/v0.11.0python_final/a10structures/reinstall
similarity index 100%
rename from a10structures/reinstall
rename to v0.11.0python_final/a10structures/reinstall
diff --git a/a10structures/requirements.txt b/v0.11.0python_final/a10structures/requirements.txt
similarity index 100%
rename from a10structures/requirements.txt
rename to v0.11.0python_final/a10structures/requirements.txt
diff --git a/a10structures/setup.py b/v0.11.0python_final/a10structures/setup.py
similarity index 100%
rename from a10structures/setup.py
rename to v0.11.0python_final/a10structures/setup.py
diff --git a/apps/README.md b/v0.11.0python_final/apps/README.md
similarity index 100%
rename from apps/README.md
rename to v0.11.0python_final/apps/README.md
diff --git a/apps/asmqttviewer/' b/v0.11.0python_final/apps/asmqttviewer/'
similarity index 100%
rename from apps/asmqttviewer/'
rename to v0.11.0python_final/apps/asmqttviewer/'
diff --git a/apps/asmqttviewer/Dockerfile b/v0.11.0python_final/apps/asmqttviewer/Dockerfile
similarity index 100%
rename from apps/asmqttviewer/Dockerfile
rename to v0.11.0python_final/apps/asmqttviewer/Dockerfile
diff --git a/apps/asmqttviewer/README.md b/v0.11.0python_final/apps/asmqttviewer/README.md
similarity index 100%
rename from apps/asmqttviewer/README.md
rename to v0.11.0python_final/apps/asmqttviewer/README.md
diff --git a/apps/asmqttviewer/a10.conf b/v0.11.0python_final/apps/asmqttviewer/a10.conf
similarity index 100%
rename from apps/asmqttviewer/a10.conf
rename to v0.11.0python_final/apps/asmqttviewer/a10.conf
diff --git a/apps/asmqttviewer/asmqttviewer.py b/v0.11.0python_final/apps/asmqttviewer/asmqttviewer.py
similarity index 100%
rename from apps/asmqttviewer/asmqttviewer.py
rename to v0.11.0python_final/apps/asmqttviewer/asmqttviewer.py
diff --git a/apps/asmqttviewer/requirements.txt b/v0.11.0python_final/apps/asmqttviewer/requirements.txt
similarity index 100%
rename from apps/asmqttviewer/requirements.txt
rename to v0.11.0python_final/apps/asmqttviewer/requirements.txt
diff --git a/apps/attdsl2/README.md b/v0.11.0python_final/apps/attdsl2/README.md
similarity index 100%
rename from apps/attdsl2/README.md
rename to v0.11.0python_final/apps/attdsl2/README.md
diff --git a/apps/attdsl2/att_language.lark b/v0.11.0python_final/apps/attdsl2/att_language.lark
similarity index 100%
rename from apps/attdsl2/att_language.lark
rename to v0.11.0python_final/apps/attdsl2/att_language.lark
diff --git a/apps/attdsl2/attall.py b/v0.11.0python_final/apps/attdsl2/attall.py
similarity index 100%
rename from apps/attdsl2/attall.py
rename to v0.11.0python_final/apps/attdsl2/attall.py
diff --git a/apps/attdsl2/attgrammar.py b/v0.11.0python_final/apps/attdsl2/attgrammar.py
similarity index 100%
rename from apps/attdsl2/attgrammar.py
rename to v0.11.0python_final/apps/attdsl2/attgrammar.py
diff --git a/apps/attdsl2/attlanguage.py b/v0.11.0python_final/apps/attdsl2/attlanguage.py
similarity index 100%
rename from apps/attdsl2/attlanguage.py
rename to v0.11.0python_final/apps/attdsl2/attlanguage.py
diff --git a/apps/attdsl2/attreport.py b/v0.11.0python_final/apps/attdsl2/attreport.py
similarity index 100%
rename from apps/attdsl2/attreport.py
rename to v0.11.0python_final/apps/attdsl2/attreport.py
diff --git a/apps/attdsl2/eva_language.lark b/v0.11.0python_final/apps/attdsl2/eva_language.lark
similarity index 100%
rename from apps/attdsl2/eva_language.lark
rename to v0.11.0python_final/apps/attdsl2/eva_language.lark
diff --git a/apps/attdsl2/examplescripts/a.att b/v0.11.0python_final/apps/attdsl2/examplescripts/a.att
similarity index 100%
rename from apps/attdsl2/examplescripts/a.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a.att
diff --git a/apps/attdsl2/examplescripts/a.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/a.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/a.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a.eva
diff --git a/apps/attdsl2/examplescripts/a2.att b/v0.11.0python_final/apps/attdsl2/examplescripts/a2.att
similarity index 100%
rename from apps/attdsl2/examplescripts/a2.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a2.att
diff --git a/apps/attdsl2/examplescripts/a2.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/a2.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/a2.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a2.eva
diff --git a/apps/attdsl2/examplescripts/a3.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/a3.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/a3.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a3.eva
diff --git a/apps/attdsl2/examplescripts/a4.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/a4.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/a4.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/a4.eva
diff --git a/apps/attdsl2/examplescripts/example.att b/v0.11.0python_final/apps/attdsl2/examplescripts/example.att
similarity index 100%
rename from apps/attdsl2/examplescripts/example.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/example.att
diff --git a/apps/attdsl2/examplescripts/iot.att b/v0.11.0python_final/apps/attdsl2/examplescripts/iot.att
similarity index 100%
rename from apps/attdsl2/examplescripts/iot.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/iot.att
diff --git a/apps/attdsl2/examplescripts/iot.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/iot.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/iot.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/iot.eva
diff --git a/apps/attdsl2/examplescripts/new.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/new.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/new.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/new.eva
diff --git a/apps/attdsl2/examplescripts/pis.att b/v0.11.0python_final/apps/attdsl2/examplescripts/pis.att
similarity index 100%
rename from apps/attdsl2/examplescripts/pis.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/pis.att
diff --git a/apps/attdsl2/examplescripts/q.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/q.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/q.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/q.eva
diff --git a/apps/attdsl2/examplescripts/roosa.att b/v0.11.0python_final/apps/attdsl2/examplescripts/roosa.att
similarity index 100%
rename from apps/attdsl2/examplescripts/roosa.att
rename to v0.11.0python_final/apps/attdsl2/examplescripts/roosa.att
diff --git a/apps/attdsl2/examplescripts/roosa.eva b/v0.11.0python_final/apps/attdsl2/examplescripts/roosa.eva
similarity index 100%
rename from apps/attdsl2/examplescripts/roosa.eva
rename to v0.11.0python_final/apps/attdsl2/examplescripts/roosa.eva
diff --git a/apps/attdsl2/report.txt b/v0.11.0python_final/apps/attdsl2/report.txt
similarity index 100%
rename from apps/attdsl2/report.txt
rename to v0.11.0python_final/apps/attdsl2/report.txt
diff --git a/apps/d10/README.md b/v0.11.0python_final/apps/d10/README.md
similarity index 100%
rename from apps/d10/README.md
rename to v0.11.0python_final/apps/d10/README.md
diff --git a/apps/d10/att_language.lark b/v0.11.0python_final/apps/d10/att_language.lark
similarity index 100%
rename from apps/d10/att_language.lark
rename to v0.11.0python_final/apps/d10/att_language.lark
diff --git a/apps/d10/attall.py b/v0.11.0python_final/apps/d10/attall.py
similarity index 100%
rename from apps/d10/attall.py
rename to v0.11.0python_final/apps/d10/attall.py
diff --git a/apps/d10/attgrammar.py b/v0.11.0python_final/apps/d10/attgrammar.py
similarity index 100%
rename from apps/d10/attgrammar.py
rename to v0.11.0python_final/apps/d10/attgrammar.py
diff --git a/apps/d10/attlanguage.py b/v0.11.0python_final/apps/d10/attlanguage.py
similarity index 100%
rename from apps/d10/attlanguage.py
rename to v0.11.0python_final/apps/d10/attlanguage.py
diff --git a/apps/d10/attreport.py b/v0.11.0python_final/apps/d10/attreport.py
similarity index 100%
rename from apps/d10/attreport.py
rename to v0.11.0python_final/apps/d10/attreport.py
diff --git a/apps/d10/d10.conf b/v0.11.0python_final/apps/d10/d10.conf
similarity index 100%
rename from apps/d10/d10.conf
rename to v0.11.0python_final/apps/d10/d10.conf
diff --git a/apps/d10/d10.py b/v0.11.0python_final/apps/d10/d10.py
similarity index 100%
rename from apps/d10/d10.py
rename to v0.11.0python_final/apps/d10/d10.py
diff --git a/apps/d10/d10api.py b/v0.11.0python_final/apps/d10/d10api.py
similarity index 100%
rename from apps/d10/d10api.py
rename to v0.11.0python_final/apps/d10/d10api.py
diff --git a/apps/d10/d10conf.py b/v0.11.0python_final/apps/d10/d10conf.py
similarity index 100%
rename from apps/d10/d10conf.py
rename to v0.11.0python_final/apps/d10/d10conf.py
diff --git a/apps/d10/d10db.py b/v0.11.0python_final/apps/d10/d10db.py
similarity index 100%
rename from apps/d10/d10db.py
rename to v0.11.0python_final/apps/d10/d10db.py
diff --git a/apps/d10/d10flask.conf b/v0.11.0python_final/apps/d10/d10flask.conf
similarity index 100%
rename from apps/d10/d10flask.conf
rename to v0.11.0python_final/apps/d10/d10flask.conf
diff --git a/apps/d10/eva_language.lark b/v0.11.0python_final/apps/d10/eva_language.lark
similarity index 100%
rename from apps/d10/eva_language.lark
rename to v0.11.0python_final/apps/d10/eva_language.lark
diff --git a/apps/d10/examples/a.att b/v0.11.0python_final/apps/d10/examples/a.att
similarity index 100%
rename from apps/d10/examples/a.att
rename to v0.11.0python_final/apps/d10/examples/a.att
diff --git a/apps/d10/examples/a.eva b/v0.11.0python_final/apps/d10/examples/a.eva
similarity index 100%
rename from apps/d10/examples/a.eva
rename to v0.11.0python_final/apps/d10/examples/a.eva
diff --git a/apps/d10/examples/a2.att b/v0.11.0python_final/apps/d10/examples/a2.att
similarity index 100%
rename from apps/d10/examples/a2.att
rename to v0.11.0python_final/apps/d10/examples/a2.att
diff --git a/apps/d10/examples/a2.eva b/v0.11.0python_final/apps/d10/examples/a2.eva
similarity index 100%
rename from apps/d10/examples/a2.eva
rename to v0.11.0python_final/apps/d10/examples/a2.eva
diff --git a/apps/d10/examples/a3.eva b/v0.11.0python_final/apps/d10/examples/a3.eva
similarity index 100%
rename from apps/d10/examples/a3.eva
rename to v0.11.0python_final/apps/d10/examples/a3.eva
diff --git a/apps/d10/examples/a4.eva b/v0.11.0python_final/apps/d10/examples/a4.eva
similarity index 100%
rename from apps/d10/examples/a4.eva
rename to v0.11.0python_final/apps/d10/examples/a4.eva
diff --git a/apps/d10/examples/example.att b/v0.11.0python_final/apps/d10/examples/example.att
similarity index 100%
rename from apps/d10/examples/example.att
rename to v0.11.0python_final/apps/d10/examples/example.att
diff --git a/apps/d10/examples/iot.att b/v0.11.0python_final/apps/d10/examples/iot.att
similarity index 100%
rename from apps/d10/examples/iot.att
rename to v0.11.0python_final/apps/d10/examples/iot.att
diff --git a/apps/d10/examples/iot.eva b/v0.11.0python_final/apps/d10/examples/iot.eva
similarity index 100%
rename from apps/d10/examples/iot.eva
rename to v0.11.0python_final/apps/d10/examples/iot.eva
diff --git a/apps/d10/examples/new.eva b/v0.11.0python_final/apps/d10/examples/new.eva
similarity index 100%
rename from apps/d10/examples/new.eva
rename to v0.11.0python_final/apps/d10/examples/new.eva
diff --git a/apps/d10/examples/pis.att b/v0.11.0python_final/apps/d10/examples/pis.att
similarity index 100%
rename from apps/d10/examples/pis.att
rename to v0.11.0python_final/apps/d10/examples/pis.att
diff --git a/apps/d10/examples/q.eva b/v0.11.0python_final/apps/d10/examples/q.eva
similarity index 100%
rename from apps/d10/examples/q.eva
rename to v0.11.0python_final/apps/d10/examples/q.eva
diff --git a/apps/d10/examples/roosa.att b/v0.11.0python_final/apps/d10/examples/roosa.att
similarity index 100%
rename from apps/d10/examples/roosa.att
rename to v0.11.0python_final/apps/d10/examples/roosa.att
diff --git a/apps/d10/examples/roosa.eva b/v0.11.0python_final/apps/d10/examples/roosa.eva
similarity index 100%
rename from apps/d10/examples/roosa.eva
rename to v0.11.0python_final/apps/d10/examples/roosa.eva
diff --git a/apps/d10/examples/upload.py b/v0.11.0python_final/apps/d10/examples/upload.py
similarity index 100%
rename from apps/d10/examples/upload.py
rename to v0.11.0python_final/apps/d10/examples/upload.py
diff --git a/apps/d10/report.txt b/v0.11.0python_final/apps/d10/report.txt
similarity index 100%
rename from apps/d10/report.txt
rename to v0.11.0python_final/apps/d10/report.txt
diff --git a/apps/d10/rest.py b/v0.11.0python_final/apps/d10/rest.py
similarity index 100%
rename from apps/d10/rest.py
rename to v0.11.0python_final/apps/d10/rest.py
diff --git a/apps/d10/templates/404.html b/v0.11.0python_final/apps/d10/templates/404.html
similarity index 100%
rename from apps/d10/templates/404.html
rename to v0.11.0python_final/apps/d10/templates/404.html
diff --git a/apps/d10/templates/base.html b/v0.11.0python_final/apps/d10/templates/base.html
similarity index 100%
rename from apps/d10/templates/base.html
rename to v0.11.0python_final/apps/d10/templates/base.html
diff --git a/apps/d10/templates/home.html b/v0.11.0python_final/apps/d10/templates/home.html
similarity index 100%
rename from apps/d10/templates/home.html
rename to v0.11.0python_final/apps/d10/templates/home.html
diff --git a/apps/d10/templates/list.html b/v0.11.0python_final/apps/d10/templates/list.html
similarity index 100%
rename from apps/d10/templates/list.html
rename to v0.11.0python_final/apps/d10/templates/list.html
diff --git a/apps/d10/ui.py b/v0.11.0python_final/apps/d10/ui.py
similarity index 100%
rename from apps/d10/ui.py
rename to v0.11.0python_final/apps/d10/ui.py
diff --git a/apps/d10/yamlversions/att.yaml b/v0.11.0python_final/apps/d10/yamlversions/att.yaml
similarity index 100%
rename from apps/d10/yamlversions/att.yaml
rename to v0.11.0python_final/apps/d10/yamlversions/att.yaml
diff --git a/apps/d10/yamlversions/eva.yaml b/v0.11.0python_final/apps/d10/yamlversions/eva.yaml
similarity index 100%
rename from apps/d10/yamlversions/eva.yaml
rename to v0.11.0python_final/apps/d10/yamlversions/eva.yaml
diff --git a/apps/d10/yamlversions/p.py b/v0.11.0python_final/apps/d10/yamlversions/p.py
similarity index 100%
rename from apps/d10/yamlversions/p.py
rename to v0.11.0python_final/apps/d10/yamlversions/p.py
diff --git a/apps/enroller/README.md b/v0.11.0python_final/apps/enroller/README.md
similarity index 100%
rename from apps/enroller/README.md
rename to v0.11.0python_final/apps/enroller/README.md
diff --git a/apps/enroller/client/Dockerfile.local b/v0.11.0python_final/apps/enroller/client/Dockerfile.local
similarity index 100%
rename from apps/enroller/client/Dockerfile.local
rename to v0.11.0python_final/apps/enroller/client/Dockerfile.local
diff --git a/apps/enroller/client/Dockerfile.provision b/v0.11.0python_final/apps/enroller/client/Dockerfile.provision
similarity index 100%
rename from apps/enroller/client/Dockerfile.provision
rename to v0.11.0python_final/apps/enroller/client/Dockerfile.provision
diff --git a/apps/enroller/client/Dockerfile.updateelement b/v0.11.0python_final/apps/enroller/client/Dockerfile.updateelement
similarity index 100%
rename from apps/enroller/client/Dockerfile.updateelement
rename to v0.11.0python_final/apps/enroller/client/Dockerfile.updateelement
diff --git a/apps/enroller/client/constructTPM2JSONobject.py b/v0.11.0python_final/apps/enroller/client/constructTPM2JSONobject.py
similarity index 100%
rename from apps/enroller/client/constructTPM2JSONobject.py
rename to v0.11.0python_final/apps/enroller/client/constructTPM2JSONobject.py
diff --git a/apps/enroller/client/enrol.json b/v0.11.0python_final/apps/enroller/client/enrol.json
similarity index 100%
rename from apps/enroller/client/enrol.json
rename to v0.11.0python_final/apps/enroller/client/enrol.json
diff --git a/apps/enroller/client/enrol.py b/v0.11.0python_final/apps/enroller/client/enrol.py
similarity index 100%
rename from apps/enroller/client/enrol.py
rename to v0.11.0python_final/apps/enroller/client/enrol.py
diff --git a/apps/enroller/client/enrolupdate.py b/v0.11.0python_final/apps/enroller/client/enrolupdate.py
similarity index 100%
rename from apps/enroller/client/enrolupdate.py
rename to v0.11.0python_final/apps/enroller/client/enrolupdate.py
diff --git a/apps/enroller/client/exampleEnrollDocument.json b/v0.11.0python_final/apps/enroller/client/exampleEnrollDocument.json
similarity index 100%
rename from apps/enroller/client/exampleEnrollDocument.json
rename to v0.11.0python_final/apps/enroller/client/exampleEnrollDocument.json
diff --git a/apps/enroller/client/provision b/v0.11.0python_final/apps/enroller/client/provision
similarity index 100%
rename from apps/enroller/client/provision
rename to v0.11.0python_final/apps/enroller/client/provision
diff --git a/apps/enroller/client/updateelement b/v0.11.0python_final/apps/enroller/client/updateelement
similarity index 100%
rename from apps/enroller/client/updateelement
rename to v0.11.0python_final/apps/enroller/client/updateelement
diff --git a/apps/enroller/minimalclient/provisionMinimal b/v0.11.0python_final/apps/enroller/minimalclient/provisionMinimal
similarity index 100%
rename from apps/enroller/minimalclient/provisionMinimal
rename to v0.11.0python_final/apps/enroller/minimalclient/provisionMinimal
diff --git a/apps/enroller/server/Dockerfile.local b/v0.11.0python_final/apps/enroller/server/Dockerfile.local
similarity index 100%
rename from apps/enroller/server/Dockerfile.local
rename to v0.11.0python_final/apps/enroller/server/Dockerfile.local
diff --git a/apps/enroller/server/eapp.conf b/v0.11.0python_final/apps/enroller/server/eapp.conf
similarity index 100%
rename from apps/enroller/server/eapp.conf
rename to v0.11.0python_final/apps/enroller/server/eapp.conf
diff --git a/apps/enroller/server/penrollserver.py b/v0.11.0python_final/apps/enroller/server/penrollserver.py
similarity index 100%
rename from apps/enroller/server/penrollserver.py
rename to v0.11.0python_final/apps/enroller/server/penrollserver.py
diff --git a/apps/enroller/server/requirements.txt b/v0.11.0python_final/apps/enroller/server/requirements.txt
similarity index 100%
rename from apps/enroller/server/requirements.txt
rename to v0.11.0python_final/apps/enroller/server/requirements.txt
diff --git a/apps/enroller/server/tenrollserver.py b/v0.11.0python_final/apps/enroller/server/tenrollserver.py
similarity index 100%
rename from apps/enroller/server/tenrollserver.py
rename to v0.11.0python_final/apps/enroller/server/tenrollserver.py
diff --git a/apps/mobileattester/.gitignore b/v0.11.0python_final/apps/mobileattester/.gitignore
similarity index 100%
rename from apps/mobileattester/.gitignore
rename to v0.11.0python_final/apps/mobileattester/.gitignore
diff --git a/apps/mobileattester/README.md b/v0.11.0python_final/apps/mobileattester/README.md
similarity index 100%
rename from apps/mobileattester/README.md
rename to v0.11.0python_final/apps/mobileattester/README.md
diff --git a/apps/mobileattester/app/.gitignore b/v0.11.0python_final/apps/mobileattester/app/.gitignore
similarity index 100%
rename from apps/mobileattester/app/.gitignore
rename to v0.11.0python_final/apps/mobileattester/app/.gitignore
diff --git a/apps/mobileattester/app/build.gradle b/v0.11.0python_final/apps/mobileattester/app/build.gradle
similarity index 100%
rename from apps/mobileattester/app/build.gradle
rename to v0.11.0python_final/apps/mobileattester/app/build.gradle
diff --git a/apps/mobileattester/app/proguard-rules.pro b/v0.11.0python_final/apps/mobileattester/app/proguard-rules.pro
similarity index 100%
rename from apps/mobileattester/app/proguard-rules.pro
rename to v0.11.0python_final/apps/mobileattester/app/proguard-rules.pro
diff --git a/apps/mobileattester/app/src/androidTest/java/com/example/mobileattester/ExampleInstrumentedTest.kt b/v0.11.0python_final/apps/mobileattester/app/src/androidTest/java/com/example/mobileattester/ExampleInstrumentedTest.kt
similarity index 100%
rename from apps/mobileattester/app/src/androidTest/java/com/example/mobileattester/ExampleInstrumentedTest.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/androidTest/java/com/example/mobileattester/ExampleInstrumentedTest.kt
diff --git a/apps/mobileattester/app/src/main/AndroidManifest.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/AndroidManifest.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/AndroidManifest.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/AndroidManifest.xml
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/MainActivity.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/MainActivity.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/MainActivity.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/MainActivity.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/location/LocationHandler.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/location/LocationHandler.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/location/LocationHandler.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/location/LocationHandler.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Claim.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Claim.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Claim.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Claim.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Element.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Element.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Element.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Element.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ElementResult.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ElementResult.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ElementResult.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ElementResult.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ExpectedValue.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ExpectedValue.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ExpectedValue.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/ExpectedValue.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Policy.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Policy.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Policy.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Policy.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Rule.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Rule.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Rule.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Rule.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Spec.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Spec.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Spec.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/model/Spec.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataHandler.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataHandler.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataHandler.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataHandler.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataService.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataService.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataService.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/AttestationDataService.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/DataServiceValues.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/DataServiceValues.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/DataServiceValues.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/DataServiceValues.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/Networking.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/Networking.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/Networking.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/network/Networking.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/repository/AttestationRepo.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/repository/AttestationRepo.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/repository/AttestationRepo.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/repository/AttestationRepo.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/AttestUtil.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/AttestUtil.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/AttestUtil.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/AttestUtil.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/DataHandlers.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/DataHandlers.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/DataHandlers.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/DataHandlers.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/EngineUtil.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/EngineUtil.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/EngineUtil.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/EngineUtil.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/LocationEditor.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/LocationEditor.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/LocationEditor.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/LocationEditor.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/MapManager.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/MapManager.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/MapManager.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/MapManager.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/OverviewProvider.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/OverviewProvider.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/OverviewProvider.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/OverviewProvider.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/UpdateUtil.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/UpdateUtil.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/UpdateUtil.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/UpdateUtil.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/AsyncRunner.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/AsyncRunner.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/AsyncRunner.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/AsyncRunner.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/BatchedDataHandler.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/BatchedDataHandler.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/BatchedDataHandler.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/BatchedDataHandler.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/Filterable.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/Filterable.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/Filterable.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/Filterable.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/OLD.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/OLD.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/OLD.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/data/util/abs/OLD.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/di/Injector.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/di/Injector.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/di/Injector.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/di/Injector.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/ElementInfoWindow.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/ElementInfoWindow.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/ElementInfoWindow.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/ElementInfoWindow.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/SearchBar.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/SearchBar.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/SearchBar.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/SearchBar.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/Tag.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/Tag.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/Tag.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/Tag.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/anim/Animation.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/anim/Animation.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/anim/Animation.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/anim/Animation.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Async.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Async.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Async.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Async.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Buttons.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Buttons.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Buttons.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Buttons.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Center.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Center.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Center.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Center.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Headers.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Headers.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Headers.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Headers.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Selectors.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Selectors.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Selectors.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Selectors.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Text.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Text.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Text.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/components/common/Text.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Attest.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Attest.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Attest.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Attest.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Claim.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Claim.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Claim.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Claim.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Element.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Element.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Element.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Element.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Elements.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Elements.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Elements.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Elements.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Home.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Home.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Home.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Home.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Maps.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Maps.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Maps.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Maps.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/More.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/More.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/More.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/More.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Policy.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Policy.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Policy.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Policy.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Result.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Result.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Result.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Result.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Scanner.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Scanner.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Scanner.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/pages/Scanner.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Color.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Color.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Color.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Color.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Elevation.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Elevation.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Elevation.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Elevation.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Shape.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Shape.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Shape.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Shape.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Theme.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Theme.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Theme.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Theme.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Type.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Type.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Type.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/theme/Type.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Date.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Date.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Date.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Date.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Extensions.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Extensions.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Extensions.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Extensions.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/FilterBuilder.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/FilterBuilder.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/FilterBuilder.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/FilterBuilder.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Navigation.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Navigation.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Navigation.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Navigation.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Parsing.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Parsing.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Parsing.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Parsing.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Permissions.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Permissions.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Permissions.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Permissions.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Preferences.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Preferences.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Preferences.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Preferences.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Ui.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Ui.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Ui.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/util/Ui.kt
diff --git a/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/viewmodel/AttestationViewModel.kt b/v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/viewmodel/AttestationViewModel.kt
similarity index 100%
rename from apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/viewmodel/AttestationViewModel.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/main/java/com/example/mobileattester/ui/viewmodel/AttestationViewModel.kt
diff --git a/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_green.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_green.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_green.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_green.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_red.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_red.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_red.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_baseline_location_on_32_red.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/ic_baseline_circle_32.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_circle_32.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/ic_baseline_circle_32.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_circle_32.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/ic_baseline_location_on_32.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_location_on_32.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/ic_baseline_location_on_32.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_location_on_32.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/ic_baseline_server.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_server.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/ic_baseline_server.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_baseline_server.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/ic_launcher_background.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/ic_launcher_background.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/apps/mobileattester/app/src/main/res/drawable/layout_bg.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/layout_bg.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/drawable/layout_bg.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/drawable/layout_bg.xml
diff --git a/apps/mobileattester/app/src/main/res/layout/layout_element_info_window.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/layout/layout_element_info_window.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/layout/layout_element_info_window.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/layout/layout_element_info_window.xml
diff --git a/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/apps/mobileattester/app/src/main/res/values-night/themes.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/values-night/themes.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/values-night/themes.xml
diff --git a/apps/mobileattester/app/src/main/res/values/colors.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/values/colors.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/values/colors.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/values/colors.xml
diff --git a/apps/mobileattester/app/src/main/res/values/strings.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/values/strings.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/values/strings.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/values/strings.xml
diff --git a/apps/mobileattester/app/src/main/res/values/themes.xml b/v0.11.0python_final/apps/mobileattester/app/src/main/res/values/themes.xml
similarity index 100%
rename from apps/mobileattester/app/src/main/res/values/themes.xml
rename to v0.11.0python_final/apps/mobileattester/app/src/main/res/values/themes.xml
diff --git a/apps/mobileattester/app/src/test/java/com/example/mobileattester/ExampleUnitTest.kt b/v0.11.0python_final/apps/mobileattester/app/src/test/java/com/example/mobileattester/ExampleUnitTest.kt
similarity index 100%
rename from apps/mobileattester/app/src/test/java/com/example/mobileattester/ExampleUnitTest.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/test/java/com/example/mobileattester/ExampleUnitTest.kt
diff --git a/apps/mobileattester/app/src/test/java/com/example/mobileattester/ui/util/ParsingKtTest.kt b/v0.11.0python_final/apps/mobileattester/app/src/test/java/com/example/mobileattester/ui/util/ParsingKtTest.kt
similarity index 100%
rename from apps/mobileattester/app/src/test/java/com/example/mobileattester/ui/util/ParsingKtTest.kt
rename to v0.11.0python_final/apps/mobileattester/app/src/test/java/com/example/mobileattester/ui/util/ParsingKtTest.kt
diff --git a/apps/mobileattester/build.gradle b/v0.11.0python_final/apps/mobileattester/build.gradle
similarity index 100%
rename from apps/mobileattester/build.gradle
rename to v0.11.0python_final/apps/mobileattester/build.gradle
diff --git a/apps/mobileattester/gradle.properties b/v0.11.0python_final/apps/mobileattester/gradle.properties
similarity index 100%
rename from apps/mobileattester/gradle.properties
rename to v0.11.0python_final/apps/mobileattester/gradle.properties
diff --git a/apps/mobileattester/gradle/wrapper/gradle-wrapper.jar b/v0.11.0python_final/apps/mobileattester/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from apps/mobileattester/gradle/wrapper/gradle-wrapper.jar
rename to v0.11.0python_final/apps/mobileattester/gradle/wrapper/gradle-wrapper.jar
diff --git a/apps/mobileattester/gradle/wrapper/gradle-wrapper.properties b/v0.11.0python_final/apps/mobileattester/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from apps/mobileattester/gradle/wrapper/gradle-wrapper.properties
rename to v0.11.0python_final/apps/mobileattester/gradle/wrapper/gradle-wrapper.properties
diff --git a/apps/mobileattester/gradlew b/v0.11.0python_final/apps/mobileattester/gradlew
similarity index 100%
rename from apps/mobileattester/gradlew
rename to v0.11.0python_final/apps/mobileattester/gradlew
diff --git a/apps/mobileattester/gradlew.bat b/v0.11.0python_final/apps/mobileattester/gradlew.bat
similarity index 100%
rename from apps/mobileattester/gradlew.bat
rename to v0.11.0python_final/apps/mobileattester/gradlew.bat
diff --git a/apps/mobileattester/media/Screenshot_1639475937.png b/v0.11.0python_final/apps/mobileattester/media/Screenshot_1639475937.png
similarity index 100%
rename from apps/mobileattester/media/Screenshot_1639475937.png
rename to v0.11.0python_final/apps/mobileattester/media/Screenshot_1639475937.png
diff --git a/apps/mobileattester/media/Screenshot_1639476478.png b/v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476478.png
similarity index 100%
rename from apps/mobileattester/media/Screenshot_1639476478.png
rename to v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476478.png
diff --git a/apps/mobileattester/media/Screenshot_1639476558.png b/v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476558.png
similarity index 100%
rename from apps/mobileattester/media/Screenshot_1639476558.png
rename to v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476558.png
diff --git a/apps/mobileattester/media/Screenshot_1639476952.png b/v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476952.png
similarity index 100%
rename from apps/mobileattester/media/Screenshot_1639476952.png
rename to v0.11.0python_final/apps/mobileattester/media/Screenshot_1639476952.png
diff --git a/apps/mobileattester/settings.gradle b/v0.11.0python_final/apps/mobileattester/settings.gradle
similarity index 100%
rename from apps/mobileattester/settings.gradle
rename to v0.11.0python_final/apps/mobileattester/settings.gradle
diff --git a/apps/securesensormanagementsystem/.gitignore b/v0.11.0python_final/apps/securesensormanagementsystem/.gitignore
similarity index 100%
rename from apps/securesensormanagementsystem/.gitignore
rename to v0.11.0python_final/apps/securesensormanagementsystem/.gitignore
diff --git a/apps/securesensormanagementsystem/README.md b/v0.11.0python_final/apps/securesensormanagementsystem/README.md
similarity index 100%
rename from apps/securesensormanagementsystem/README.md
rename to v0.11.0python_final/apps/securesensormanagementsystem/README.md
diff --git a/apps/securesensormanagementsystem/documentation/.DS_Store b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/.DS_Store
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/.DS_Store
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/.DS_Store
diff --git a/apps/securesensormanagementsystem/documentation/README.md b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/README.md
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/README.md
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/README.md
diff --git a/apps/securesensormanagementsystem/documentation/STRUCTURE.md b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/STRUCTURE.md
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/STRUCTURE.md
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/STRUCTURE.md
diff --git a/apps/securesensormanagementsystem/documentation/pics/.DS_Store b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/.DS_Store
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/pics/.DS_Store
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/.DS_Store
diff --git a/apps/securesensormanagementsystem/documentation/pics/IoTElementInheritance.JPG b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/IoTElementInheritance.JPG
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/pics/IoTElementInheritance.JPG
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/IoTElementInheritance.JPG
diff --git a/apps/securesensormanagementsystem/documentation/pics/aggregator_sequence_diagram.png b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/aggregator_sequence_diagram.png
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/pics/aggregator_sequence_diagram.png
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/aggregator_sequence_diagram.png
diff --git a/apps/securesensormanagementsystem/documentation/pics/device_flow.drawio.png b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/device_flow.drawio.png
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/pics/device_flow.drawio.png
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/device_flow.drawio.png
diff --git a/apps/securesensormanagementsystem/documentation/pics/system_sequence_diagram.JPG b/v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/system_sequence_diagram.JPG
similarity index 100%
rename from apps/securesensormanagementsystem/documentation/pics/system_sequence_diagram.JPG
rename to v0.11.0python_final/apps/securesensormanagementsystem/documentation/pics/system_sequence_diagram.JPG
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/BasicSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/BasicSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/BasicSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/BasicSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/Device.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/Device.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/Device.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/Device.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/IoTElement.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/IoTElement.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/IoTElement.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/IoTElement.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/README.md b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/README.md
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/README.md
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/README.md
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/__init__.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/__init__.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/__init__.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/SensorManagementLibrary/__init__.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/Aggregator/aggregation_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/Manager.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/Manager.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/Manager.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/Manager.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/attestor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/attestor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/attestor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/attestor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/manager_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/manager_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/manager_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/ManagementAttestor/manager_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/RngSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/RngSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/RngSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/RngSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/iot.sensors.rng_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/iot.sensors.rng_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/iot.sensors.rng_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/iot.sensors.rng_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/ExampleSensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/IRSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/IRSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/IRSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/IRSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/iot.sensors.ir_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/iot.sensors.ir_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/iot.sensors.ir_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/iot.sensors.ir_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/IRSensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/LuxSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/LuxSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/LuxSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/LuxSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/iot.sensors.lux_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/iot.sensors.lux_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/iot.sensors.lux_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/iot.sensors.lux_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/LuxSensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/TGHPASensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/TGHPASensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/TGHPASensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/TGHPASensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/iot.sensors.TGHPA_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/iot.sensors.TGHPA_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/iot.sensors.TGHPA_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/iot.sensors.TGHPA_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TGHPASensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/TofSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/TofSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/TofSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/TofSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/iot.sensors.TOF_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/iot.sensors.TOF_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/iot.sensors.TOF_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/iot.sensors.TOF_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TOFSensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/TempHumSensor.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/TempHumSensor.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/TempHumSensor.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/TempHumSensor.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/iot.sensors.temp_hum_sensor.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/iot.sensors.temp_hum_sensor.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/iot.sensors.temp_hum_sensor.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/iot.sensors.temp_hum_sensor.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/TempHumSensor/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/sensor_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/sensor_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/sensor_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/sensor_config.json
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/server.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/server.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/server.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/apps/sensors/Webcam/server.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/install/install.py b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/install/install.py
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/install/install.py
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/install/install.py
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/install/service_files/iot.devices.service b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/install/service_files/iot.devices.service
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/install/service_files/iot.devices.service
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/install/service_files/iot.devices.service
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/pyproject.toml b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/pyproject.toml
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/pyproject.toml
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/pyproject.toml
diff --git a/apps/securesensormanagementsystem/secure_sensor_management_system/setup.cfg b/v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/setup.cfg
similarity index 100%
rename from apps/securesensormanagementsystem/secure_sensor_management_system/setup.cfg
rename to v0.11.0python_final/apps/securesensormanagementsystem/secure_sensor_management_system/setup.cfg
diff --git a/apps/securesensormanagementsystem/website/UI/css/index.css b/v0.11.0python_final/apps/securesensormanagementsystem/website/UI/css/index.css
similarity index 100%
rename from apps/securesensormanagementsystem/website/UI/css/index.css
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/UI/css/index.css
diff --git a/apps/securesensormanagementsystem/website/UI/index.html b/v0.11.0python_final/apps/securesensormanagementsystem/website/UI/index.html
similarity index 100%
rename from apps/securesensormanagementsystem/website/UI/index.html
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/UI/index.html
diff --git a/apps/securesensormanagementsystem/website/UI/scripts/index.js b/v0.11.0python_final/apps/securesensormanagementsystem/website/UI/scripts/index.js
similarity index 100%
rename from apps/securesensormanagementsystem/website/UI/scripts/index.js
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/UI/scripts/index.js
diff --git a/apps/securesensormanagementsystem/website/package-lock.json b/v0.11.0python_final/apps/securesensormanagementsystem/website/package-lock.json
similarity index 100%
rename from apps/securesensormanagementsystem/website/package-lock.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/package-lock.json
diff --git a/apps/securesensormanagementsystem/website/package.json b/v0.11.0python_final/apps/securesensormanagementsystem/website/package.json
similarity index 100%
rename from apps/securesensormanagementsystem/website/package.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/package.json
diff --git a/apps/securesensormanagementsystem/website/public/css/index.css b/v0.11.0python_final/apps/securesensormanagementsystem/website/public/css/index.css
similarity index 100%
rename from apps/securesensormanagementsystem/website/public/css/index.css
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/public/css/index.css
diff --git a/apps/securesensormanagementsystem/website/public/js/index.js b/v0.11.0python_final/apps/securesensormanagementsystem/website/public/js/index.js
similarity index 100%
rename from apps/securesensormanagementsystem/website/public/js/index.js
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/public/js/index.js
diff --git a/apps/securesensormanagementsystem/website/server/server.js b/v0.11.0python_final/apps/securesensormanagementsystem/website/server/server.js
similarity index 100%
rename from apps/securesensormanagementsystem/website/server/server.js
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/server/server.js
diff --git a/apps/securesensormanagementsystem/website/server/server_config.json b/v0.11.0python_final/apps/securesensormanagementsystem/website/server/server_config.json
similarity index 100%
rename from apps/securesensormanagementsystem/website/server/server_config.json
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/server/server_config.json
diff --git a/apps/securesensormanagementsystem/website/views/index.pug b/v0.11.0python_final/apps/securesensormanagementsystem/website/views/index.pug
similarity index 100%
rename from apps/securesensormanagementsystem/website/views/index.pug
rename to v0.11.0python_final/apps/securesensormanagementsystem/website/views/index.pug
diff --git a/docs/STARTHERE.md b/v0.11.0python_final/docs/STARTHERE.md
similarity index 100%
rename from docs/STARTHERE.md
rename to v0.11.0python_final/docs/STARTHERE.md
diff --git a/docs/docker/docker.md b/v0.11.0python_final/docs/docker/docker.md
similarity index 100%
rename from docs/docker/docker.md
rename to v0.11.0python_final/docs/docker/docker.md
diff --git a/docs/docker/dockercompose.md b/v0.11.0python_final/docs/docker/dockercompose.md
similarity index 100%
rename from docs/docker/dockercompose.md
rename to v0.11.0python_final/docs/docker/dockercompose.md
diff --git a/docs/quickstart/installation.md b/v0.11.0python_final/docs/quickstart/installation.md
similarity index 100%
rename from docs/quickstart/installation.md
rename to v0.11.0python_final/docs/quickstart/installation.md
diff --git a/docs/quickstart/nut10running.png b/v0.11.0python_final/docs/quickstart/nut10running.png
similarity index 100%
rename from docs/quickstart/nut10running.png
rename to v0.11.0python_final/docs/quickstart/nut10running.png
diff --git a/docs/quickstart/u10running.png b/v0.11.0python_final/docs/quickstart/u10running.png
similarity index 100%
rename from docs/quickstart/u10running.png
rename to v0.11.0python_final/docs/quickstart/u10running.png
diff --git a/fc10/.gitignore b/v0.11.0python_final/fc10/.gitignore
similarity index 100%
rename from fc10/.gitignore
rename to v0.11.0python_final/fc10/.gitignore
diff --git a/fc10/Dockerfile.local b/v0.11.0python_final/fc10/Dockerfile.local
similarity index 100%
rename from fc10/Dockerfile.local
rename to v0.11.0python_final/fc10/Dockerfile.local
diff --git a/fc10/README.md b/v0.11.0python_final/fc10/README.md
similarity index 100%
rename from fc10/README.md
rename to v0.11.0python_final/fc10/README.md
diff --git a/fc10/analysisFunction.py b/v0.11.0python_final/fc10/analysisFunction.py
similarity index 100%
rename from fc10/analysisFunction.py
rename to v0.11.0python_final/fc10/analysisFunction.py
diff --git a/fc10/elementDifferences.py b/v0.11.0python_final/fc10/elementDifferences.py
similarity index 100%
rename from fc10/elementDifferences.py
rename to v0.11.0python_final/fc10/elementDifferences.py
diff --git a/fc10/fc.conf b/v0.11.0python_final/fc10/fc.conf
similarity index 100%
rename from fc10/fc.conf
rename to v0.11.0python_final/fc10/fc.conf
diff --git a/fc10/fc.py b/v0.11.0python_final/fc10/fc.py
similarity index 100%
rename from fc10/fc.py
rename to v0.11.0python_final/fc10/fc.py
diff --git a/fc10/fcanalytics.py b/v0.11.0python_final/fc10/fcanalytics.py
similarity index 100%
rename from fc10/fcanalytics.py
rename to v0.11.0python_final/fc10/fcanalytics.py
diff --git a/fc10/fcrules.py b/v0.11.0python_final/fc10/fcrules.py
similarity index 100%
rename from fc10/fcrules.py
rename to v0.11.0python_final/fc10/fcrules.py
diff --git a/fc10/forensicsDocument.py b/v0.11.0python_final/fc10/forensicsDocument.py
similarity index 100%
rename from fc10/forensicsDocument.py
rename to v0.11.0python_final/fc10/forensicsDocument.py
diff --git a/fc10/forensicsStructures.py b/v0.11.0python_final/fc10/forensicsStructures.py
similarity index 100%
rename from fc10/forensicsStructures.py
rename to v0.11.0python_final/fc10/forensicsStructures.py
diff --git a/fc10/forensics_capture.py b/v0.11.0python_final/fc10/forensics_capture.py
similarity index 100%
rename from fc10/forensics_capture.py
rename to v0.11.0python_final/fc10/forensics_capture.py
diff --git a/fc10/pcrDifferences.py b/v0.11.0python_final/fc10/pcrDifferences.py
similarity index 100%
rename from fc10/pcrDifferences.py
rename to v0.11.0python_final/fc10/pcrDifferences.py
diff --git a/fc10/quoteDifferences.py b/v0.11.0python_final/fc10/quoteDifferences.py
similarity index 100%
rename from fc10/quoteDifferences.py
rename to v0.11.0python_final/fc10/quoteDifferences.py
diff --git a/fc10/static/css/style.css b/v0.11.0python_final/fc10/static/css/style.css
similarity index 100%
rename from fc10/static/css/style.css
rename to v0.11.0python_final/fc10/static/css/style.css
diff --git a/fc10/systeminfoDifferences.py b/v0.11.0python_final/fc10/systeminfoDifferences.py
similarity index 100%
rename from fc10/systeminfoDifferences.py
rename to v0.11.0python_final/fc10/systeminfoDifferences.py
diff --git a/fc10/templates/base.html b/v0.11.0python_final/fc10/templates/base.html
similarity index 100%
rename from fc10/templates/base.html
rename to v0.11.0python_final/fc10/templates/base.html
diff --git a/fc10/templates/errorpage.html b/v0.11.0python_final/fc10/templates/errorpage.html
similarity index 100%
rename from fc10/templates/errorpage.html
rename to v0.11.0python_final/fc10/templates/errorpage.html
diff --git a/fc10/templates/ftl.html b/v0.11.0python_final/fc10/templates/ftl.html
similarity index 100%
rename from fc10/templates/ftl.html
rename to v0.11.0python_final/fc10/templates/ftl.html
diff --git a/fc10/templates/home.html b/v0.11.0python_final/fc10/templates/home.html
similarity index 100%
rename from fc10/templates/home.html
rename to v0.11.0python_final/fc10/templates/home.html
diff --git a/fc10/templates/listelements.html b/v0.11.0python_final/fc10/templates/listelements.html
similarity index 100%
rename from fc10/templates/listelements.html
rename to v0.11.0python_final/fc10/templates/listelements.html
diff --git a/fc10/testurls b/v0.11.0python_final/fc10/testurls
similarity index 100%
rename from fc10/testurls
rename to v0.11.0python_final/fc10/testurls
diff --git a/t10/A10HTTPTPMSENDSTATIC/Dockerfile b/v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/Dockerfile
similarity index 100%
rename from t10/A10HTTPTPMSENDSTATIC/Dockerfile
rename to v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/Dockerfile
diff --git a/t10/A10HTTPTPMSENDSTATIC/Makefile b/v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/Makefile
similarity index 100%
rename from t10/A10HTTPTPMSENDSTATIC/Makefile
rename to v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/Makefile
diff --git a/t10/A10HTTPTPMSENDSTATIC/tpm2-send.tar.xz b/v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2-send.tar.xz
similarity index 100%
rename from t10/A10HTTPTPMSENDSTATIC/tpm2-send.tar.xz
rename to v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2-send.tar.xz
diff --git a/t10/A10HTTPTPMSENDSTATIC/tpm2_send.c b/v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2_send.c
similarity index 100%
rename from t10/A10HTTPTPMSENDSTATIC/tpm2_send.c
rename to v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2_send.c
diff --git a/t10/A10HTTPTPMSENDSTATIC/tpm2_send_server.py b/v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2_send_server.py
similarity index 100%
rename from t10/A10HTTPTPMSENDSTATIC/tpm2_send_server.py
rename to v0.11.0python_final/t10/A10HTTPTPMSENDSTATIC/tpm2_send_server.py
diff --git a/t10/A10httprest/Dockerfile b/v0.11.0python_final/t10/A10httprest/Dockerfile
similarity index 100%
rename from t10/A10httprest/Dockerfile
rename to v0.11.0python_final/t10/A10httprest/Dockerfile
diff --git a/t10/A10httprest/claims/claimstructure.py b/v0.11.0python_final/t10/A10httprest/claims/claimstructure.py
similarity index 100%
rename from t10/A10httprest/claims/claimstructure.py
rename to v0.11.0python_final/t10/A10httprest/claims/claimstructure.py
diff --git a/t10/A10httprest/endpoints/notpm/notpm.py b/v0.11.0python_final/t10/A10httprest/endpoints/notpm/notpm.py
similarity index 100%
rename from t10/A10httprest/endpoints/notpm/notpm.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/notpm/notpm.py
diff --git a/t10/A10httprest/endpoints/notpm/notpm_endpoint.py b/v0.11.0python_final/t10/A10httprest/endpoints/notpm/notpm_endpoint.py
similarity index 100%
rename from t10/A10httprest/endpoints/notpm/notpm_endpoint.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/notpm/notpm_endpoint.py
diff --git a/t10/A10httprest/endpoints/pifake/pifake_endpoint.py b/v0.11.0python_final/t10/A10httprest/endpoints/pifake/pifake_endpoint.py
similarity index 100%
rename from t10/A10httprest/endpoints/pifake/pifake_endpoint.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/pifake/pifake_endpoint.py
diff --git a/t10/A10httprest/endpoints/status/status_endpoint.py b/v0.11.0python_final/t10/A10httprest/endpoints/status/status_endpoint.py
similarity index 100%
rename from t10/A10httprest/endpoints/status/status_endpoint.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/status/status_endpoint.py
diff --git a/t10/A10httprest/endpoints/test/testquote.py b/v0.11.0python_final/t10/A10httprest/endpoints/test/testquote.py
similarity index 100%
rename from t10/A10httprest/endpoints/test/testquote.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/test/testquote.py
diff --git a/t10/A10httprest/endpoints/tpm2/tpm2_endpoint.py b/v0.11.0python_final/t10/A10httprest/endpoints/tpm2/tpm2_endpoint.py
similarity index 100%
rename from t10/A10httprest/endpoints/tpm2/tpm2_endpoint.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/tpm2/tpm2_endpoint.py
diff --git a/t10/A10httprest/endpoints/uefi/uefi_endpoint.py b/v0.11.0python_final/t10/A10httprest/endpoints/uefi/uefi_endpoint.py
similarity index 100%
rename from t10/A10httprest/endpoints/uefi/uefi_endpoint.py
rename to v0.11.0python_final/t10/A10httprest/endpoints/uefi/uefi_endpoint.py
diff --git a/t10/A10httprest/ta.conf b/v0.11.0python_final/t10/A10httprest/ta.conf
similarity index 100%
rename from t10/A10httprest/ta.conf
rename to v0.11.0python_final/t10/A10httprest/ta.conf
diff --git a/t10/A10httprest/ta.py b/v0.11.0python_final/t10/A10httprest/ta.py
similarity index 100%
rename from t10/A10httprest/ta.py
rename to v0.11.0python_final/t10/A10httprest/ta.py
diff --git a/t10/README.md b/v0.11.0python_final/t10/README.md
similarity index 100%
rename from t10/README.md
rename to v0.11.0python_final/t10/README.md
diff --git a/t10/genakek.sh b/v0.11.0python_final/t10/genakek.sh
similarity index 100%
rename from t10/genakek.sh
rename to v0.11.0python_final/t10/genakek.sh
diff --git a/t10/go/ta.go b/v0.11.0python_final/t10/go/ta.go
similarity index 100%
rename from t10/go/ta.go
rename to v0.11.0python_final/t10/go/ta.go
diff --git a/t10/go/tests/ekcert.go b/v0.11.0python_final/t10/go/tests/ekcert.go
similarity index 100%
rename from t10/go/tests/ekcert.go
rename to v0.11.0python_final/t10/go/tests/ekcert.go
diff --git a/t10/go/tests/hello.go b/v0.11.0python_final/t10/go/tests/hello.go
similarity index 100%
rename from t10/go/tests/hello.go
rename to v0.11.0python_final/t10/go/tests/hello.go
diff --git a/t10/go/tests/keys.go b/v0.11.0python_final/t10/go/tests/keys.go
similarity index 100%
rename from t10/go/tests/keys.go
rename to v0.11.0python_final/t10/go/tests/keys.go
diff --git a/t10/go/tests/nvram.go b/v0.11.0python_final/t10/go/tests/nvram.go
similarity index 100%
rename from t10/go/tests/nvram.go
rename to v0.11.0python_final/t10/go/tests/nvram.go
diff --git a/t10/go/tests/quote b/v0.11.0python_final/t10/go/tests/quote
similarity index 100%
rename from t10/go/tests/quote
rename to v0.11.0python_final/t10/go/tests/quote
diff --git a/t10/go/tests/quote.go b/v0.11.0python_final/t10/go/tests/quote.go
similarity index 100%
rename from t10/go/tests/quote.go
rename to v0.11.0python_final/t10/go/tests/quote.go
diff --git a/t10/nut10/Dockerfile b/v0.11.0python_final/t10/nut10/Dockerfile
similarity index 100%
rename from t10/nut10/Dockerfile
rename to v0.11.0python_final/t10/nut10/Dockerfile
diff --git a/t10/nut10/Dockerfile.local b/v0.11.0python_final/t10/nut10/Dockerfile.local
similarity index 100%
rename from t10/nut10/Dockerfile.local
rename to v0.11.0python_final/t10/nut10/Dockerfile.local
diff --git a/t10/nut10/claims/claimstructure.py b/v0.11.0python_final/t10/nut10/claims/claimstructure.py
similarity index 100%
rename from t10/nut10/claims/claimstructure.py
rename to v0.11.0python_final/t10/nut10/claims/claimstructure.py
diff --git a/t10/nut10/endpoints/ima_endpoint.py b/v0.11.0python_final/t10/nut10/endpoints/ima_endpoint.py
similarity index 100%
rename from t10/nut10/endpoints/ima_endpoint.py
rename to v0.11.0python_final/t10/nut10/endpoints/ima_endpoint.py
diff --git a/t10/nut10/endpoints/inteltxt_endpoint.py b/v0.11.0python_final/t10/nut10/endpoints/inteltxt_endpoint.py
similarity index 100%
rename from t10/nut10/endpoints/inteltxt_endpoint.py
rename to v0.11.0python_final/t10/nut10/endpoints/inteltxt_endpoint.py
diff --git a/t10/nut10/endpoints/sysinfo_endpoint.py b/v0.11.0python_final/t10/nut10/endpoints/sysinfo_endpoint.py
similarity index 100%
rename from t10/nut10/endpoints/sysinfo_endpoint.py
rename to v0.11.0python_final/t10/nut10/endpoints/sysinfo_endpoint.py
diff --git a/t10/nut10/endpoints/tpm2_endpoint.py b/v0.11.0python_final/t10/nut10/endpoints/tpm2_endpoint.py
similarity index 100%
rename from t10/nut10/endpoints/tpm2_endpoint.py
rename to v0.11.0python_final/t10/nut10/endpoints/tpm2_endpoint.py
diff --git a/t10/nut10/endpoints/uefi_endpoint.py b/v0.11.0python_final/t10/nut10/endpoints/uefi_endpoint.py
similarity index 100%
rename from t10/nut10/endpoints/uefi_endpoint.py
rename to v0.11.0python_final/t10/nut10/endpoints/uefi_endpoint.py
diff --git a/t10/nut10/run_t10_as_docker_container.sh b/v0.11.0python_final/t10/nut10/run_t10_as_docker_container.sh
similarity index 100%
rename from t10/nut10/run_t10_as_docker_container.sh
rename to v0.11.0python_final/t10/nut10/run_t10_as_docker_container.sh
diff --git a/t10/nut10/run_t10_as_podman_container.sh b/v0.11.0python_final/t10/nut10/run_t10_as_podman_container.sh
similarity index 100%
rename from t10/nut10/run_t10_as_podman_container.sh
rename to v0.11.0python_final/t10/nut10/run_t10_as_podman_container.sh
diff --git a/t10/nut10/t10.conf b/v0.11.0python_final/t10/nut10/t10.conf
similarity index 100%
rename from t10/nut10/t10.conf
rename to v0.11.0python_final/t10/nut10/t10.conf
diff --git a/t10/nut10/ta.py b/v0.11.0python_final/t10/nut10/ta.py
similarity index 100%
rename from t10/nut10/ta.py
rename to v0.11.0python_final/t10/nut10/ta.py
diff --git a/t10/nut10/ta_config.cfg b/v0.11.0python_final/t10/nut10/ta_config.cfg
similarity index 100%
rename from t10/nut10/ta_config.cfg
rename to v0.11.0python_final/t10/nut10/ta_config.cfg
diff --git a/t10/nut10/tpm/tpm.py b/v0.11.0python_final/t10/nut10/tpm/tpm.py
similarity index 100%
rename from t10/nut10/tpm/tpm.py
rename to v0.11.0python_final/t10/nut10/tpm/tpm.py
diff --git a/t10/py/Dockerfile b/v0.11.0python_final/t10/py/Dockerfile
similarity index 100%
rename from t10/py/Dockerfile
rename to v0.11.0python_final/t10/py/Dockerfile
diff --git a/t10/py/pyvenv.cfg b/v0.11.0python_final/t10/py/pyvenv.cfg
similarity index 100%
rename from t10/py/pyvenv.cfg
rename to v0.11.0python_final/t10/py/pyvenv.cfg
diff --git a/t10/py/run_as_docker_contaier.sh b/v0.11.0python_final/t10/py/run_as_docker_contaier.sh
similarity index 100%
rename from t10/py/run_as_docker_contaier.sh
rename to v0.11.0python_final/t10/py/run_as_docker_contaier.sh
diff --git a/t10/py/ta.py b/v0.11.0python_final/t10/py/ta.py
similarity index 100%
rename from t10/py/ta.py
rename to v0.11.0python_final/t10/py/ta.py
diff --git a/t10/py/ta_config.cfg b/v0.11.0python_final/t10/py/ta_config.cfg
similarity index 100%
rename from t10/py/ta_config.cfg
rename to v0.11.0python_final/t10/py/ta_config.cfg
diff --git a/t10/py/tpm/__init__.py b/v0.11.0python_final/t10/py/tpm/__init__.py
similarity index 100%
rename from t10/py/tpm/__init__.py
rename to v0.11.0python_final/t10/py/tpm/__init__.py
diff --git a/t10/py/tpm/tpm.py b/v0.11.0python_final/t10/py/tpm/tpm.py
similarity index 100%
rename from t10/py/tpm/tpm.py
rename to v0.11.0python_final/t10/py/tpm/tpm.py
diff --git a/t10/py/tpm2interface/tpm2.py b/v0.11.0python_final/t10/py/tpm2interface/tpm2.py
similarity index 100%
rename from t10/py/tpm2interface/tpm2.py
rename to v0.11.0python_final/t10/py/tpm2interface/tpm2.py
diff --git a/t10/systemd/README.md b/v0.11.0python_final/t10/systemd/README.md
similarity index 100%
rename from t10/systemd/README.md
rename to v0.11.0python_final/t10/systemd/README.md
diff --git a/t10/systemd/ta.service b/v0.11.0python_final/t10/systemd/ta.service
similarity index 100%
rename from t10/systemd/ta.service
rename to v0.11.0python_final/t10/systemd/ta.service
diff --git a/t10/systemd/ta.start b/v0.11.0python_final/t10/systemd/ta.start
similarity index 100%
rename from t10/systemd/ta.start
rename to v0.11.0python_final/t10/systemd/ta.start
diff --git a/t10/systemd/ta.stop b/v0.11.0python_final/t10/systemd/ta.stop
similarity index 100%
rename from t10/systemd/ta.stop
rename to v0.11.0python_final/t10/systemd/ta.stop
diff --git a/tests/README.md b/v0.11.0python_final/tests/README.md
similarity index 100%
rename from tests/README.md
rename to v0.11.0python_final/tests/README.md
diff --git a/tests/a10resttests/delete.py b/v0.11.0python_final/tests/a10resttests/delete.py
similarity index 100%
rename from tests/a10resttests/delete.py
rename to v0.11.0python_final/tests/a10resttests/delete.py
diff --git a/tests/a10resttests/deltest b/v0.11.0python_final/tests/a10resttests/deltest
similarity index 100%
rename from tests/a10resttests/deltest
rename to v0.11.0python_final/tests/a10resttests/deltest
diff --git a/tests/a10resttests/evtest b/v0.11.0python_final/tests/a10resttests/evtest
similarity index 100%
rename from tests/a10resttests/evtest
rename to v0.11.0python_final/tests/a10resttests/evtest
diff --git a/tests/a10resttests/postelementtest.py b/v0.11.0python_final/tests/a10resttests/postelementtest.py
similarity index 100%
rename from tests/a10resttests/postelementtest.py
rename to v0.11.0python_final/tests/a10resttests/postelementtest.py
diff --git a/tests/a10resttests/puttest b/v0.11.0python_final/tests/a10resttests/puttest
similarity index 100%
rename from tests/a10resttests/puttest
rename to v0.11.0python_final/tests/a10resttests/puttest
diff --git a/tests/a10resttests/py/p.py b/v0.11.0python_final/tests/a10resttests/py/p.py
similarity index 100%
rename from tests/a10resttests/py/p.py
rename to v0.11.0python_final/tests/a10resttests/py/p.py
diff --git a/tests/attestall/a.py b/v0.11.0python_final/tests/attestall/a.py
similarity index 100%
rename from tests/attestall/a.py
rename to v0.11.0python_final/tests/attestall/a.py
diff --git a/tests/attestall/b.py b/v0.11.0python_final/tests/attestall/b.py
similarity index 100%
rename from tests/attestall/b.py
rename to v0.11.0python_final/tests/attestall/b.py
diff --git a/tests/attestall/c.py b/v0.11.0python_final/tests/attestall/c.py
similarity index 100%
rename from tests/attestall/c.py
rename to v0.11.0python_final/tests/attestall/c.py
diff --git a/tests/attestall/v2/elementstest.py b/v0.11.0python_final/tests/attestall/v2/elementstest.py
similarity index 100%
rename from tests/attestall/v2/elementstest.py
rename to v0.11.0python_final/tests/attestall/v2/elementstest.py
diff --git a/tests/attestall/v2/policytest.py b/v0.11.0python_final/tests/attestall/v2/policytest.py
similarity index 100%
rename from tests/attestall/v2/policytest.py
rename to v0.11.0python_final/tests/attestall/v2/policytest.py
diff --git a/tests/attesttest.py b/v0.11.0python_final/tests/attesttest.py
similarity index 100%
rename from tests/attesttest.py
rename to v0.11.0python_final/tests/attesttest.py
diff --git a/tests/basicDatabaseTests.py b/v0.11.0python_final/tests/basicDatabaseTests.py
similarity index 100%
rename from tests/basicDatabaseTests.py
rename to v0.11.0python_final/tests/basicDatabaseTests.py
diff --git a/tests/diffdicttest/test1.py b/v0.11.0python_final/tests/diffdicttest/test1.py
similarity index 100%
rename from tests/diffdicttest/test1.py
rename to v0.11.0python_final/tests/diffdicttest/test1.py
diff --git a/tests/pytsstests/p.py b/v0.11.0python_final/tests/pytsstests/p.py
similarity index 100%
rename from tests/pytsstests/p.py
rename to v0.11.0python_final/tests/pytsstests/p.py
diff --git a/tests/sessions.py b/v0.11.0python_final/tests/sessions.py
similarity index 100%
rename from tests/sessions.py
rename to v0.11.0python_final/tests/sessions.py
diff --git a/tests/snippets/makeactivatecredential_test.py b/v0.11.0python_final/tests/snippets/makeactivatecredential_test.py
similarity index 100%
rename from tests/snippets/makeactivatecredential_test.py
rename to v0.11.0python_final/tests/snippets/makeactivatecredential_test.py
diff --git a/tests/snippets/pytssExample1.py b/v0.11.0python_final/tests/snippets/pytssExample1.py
similarity index 100%
rename from tests/snippets/pytssExample1.py
rename to v0.11.0python_final/tests/snippets/pytssExample1.py
diff --git a/u10/.gitignore b/v0.11.0python_final/u10/.gitignore
similarity index 100%
rename from u10/.gitignore
rename to v0.11.0python_final/u10/.gitignore
diff --git a/u10/Dockerfile.local b/v0.11.0python_final/u10/Dockerfile.local
similarity index 100%
rename from u10/Dockerfile.local
rename to v0.11.0python_final/u10/Dockerfile.local
diff --git a/u10/README.md b/v0.11.0python_final/u10/README.md
similarity index 100%
rename from u10/README.md
rename to v0.11.0python_final/u10/README.md
diff --git a/u10/a10.conf b/v0.11.0python_final/u10/a10.conf
similarity index 100%
rename from u10/a10.conf
rename to v0.11.0python_final/u10/a10.conf
diff --git a/u10/blueprints/__init__.py b/v0.11.0python_final/u10/blueprints/__init__.py
similarity index 100%
rename from u10/blueprints/__init__.py
rename to v0.11.0python_final/u10/blueprints/__init__.py
diff --git a/u10/blueprints/__pycache__/__init__.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/__init__.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/__init__.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/__init__.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/attestation.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/attestation.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/attestation.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/attestation.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/claims.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/claims.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/claims.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/claims.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/edit.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/edit.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/edit.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/edit.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/elementanalytics.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/elementanalytics.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/elementanalytics.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/elementanalytics.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/elements.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/elements.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/elements.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/elements.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/expectedvalues.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/expectedvalues.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/expectedvalues.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/expectedvalues.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/formatting.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/formatting.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/formatting.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/formatting.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/hashes.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/hashes.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/hashes.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/hashes.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/home.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/home.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/home.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/home.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/log.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/log.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/log.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/log.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/ping.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/ping.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/ping.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/ping.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/policies.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/policies.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/policies.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/policies.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/protocols.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/protocols.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/protocols.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/protocols.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/results.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/results.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/results.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/results.cpython-38.pyc
diff --git a/u10/blueprints/__pycache__/rules.cpython-38.pyc b/v0.11.0python_final/u10/blueprints/__pycache__/rules.cpython-38.pyc
similarity index 100%
rename from u10/blueprints/__pycache__/rules.cpython-38.pyc
rename to v0.11.0python_final/u10/blueprints/__pycache__/rules.cpython-38.pyc
diff --git a/u10/blueprints/attestation.py b/v0.11.0python_final/u10/blueprints/attestation.py
similarity index 100%
rename from u10/blueprints/attestation.py
rename to v0.11.0python_final/u10/blueprints/attestation.py
diff --git a/u10/blueprints/claims.py b/v0.11.0python_final/u10/blueprints/claims.py
similarity index 100%
rename from u10/blueprints/claims.py
rename to v0.11.0python_final/u10/blueprints/claims.py
diff --git a/u10/blueprints/edit.py b/v0.11.0python_final/u10/blueprints/edit.py
similarity index 100%
rename from u10/blueprints/edit.py
rename to v0.11.0python_final/u10/blueprints/edit.py
diff --git a/u10/blueprints/elementanalytics.py b/v0.11.0python_final/u10/blueprints/elementanalytics.py
similarity index 100%
rename from u10/blueprints/elementanalytics.py
rename to v0.11.0python_final/u10/blueprints/elementanalytics.py
diff --git a/u10/blueprints/elements.py b/v0.11.0python_final/u10/blueprints/elements.py
similarity index 100%
rename from u10/blueprints/elements.py
rename to v0.11.0python_final/u10/blueprints/elements.py
diff --git a/u10/blueprints/expectedvalues.py b/v0.11.0python_final/u10/blueprints/expectedvalues.py
similarity index 100%
rename from u10/blueprints/expectedvalues.py
rename to v0.11.0python_final/u10/blueprints/expectedvalues.py
diff --git a/u10/blueprints/formatting.py b/v0.11.0python_final/u10/blueprints/formatting.py
similarity index 100%
rename from u10/blueprints/formatting.py
rename to v0.11.0python_final/u10/blueprints/formatting.py
diff --git a/u10/blueprints/hashes.py b/v0.11.0python_final/u10/blueprints/hashes.py
similarity index 100%
rename from u10/blueprints/hashes.py
rename to v0.11.0python_final/u10/blueprints/hashes.py
diff --git a/u10/blueprints/home.py b/v0.11.0python_final/u10/blueprints/home.py
similarity index 100%
rename from u10/blueprints/home.py
rename to v0.11.0python_final/u10/blueprints/home.py
diff --git a/u10/blueprints/log.py b/v0.11.0python_final/u10/blueprints/log.py
similarity index 100%
rename from u10/blueprints/log.py
rename to v0.11.0python_final/u10/blueprints/log.py
diff --git a/u10/blueprints/pcrschemas.py b/v0.11.0python_final/u10/blueprints/pcrschemas.py
similarity index 100%
rename from u10/blueprints/pcrschemas.py
rename to v0.11.0python_final/u10/blueprints/pcrschemas.py
diff --git a/u10/blueprints/ping.py b/v0.11.0python_final/u10/blueprints/ping.py
similarity index 100%
rename from u10/blueprints/ping.py
rename to v0.11.0python_final/u10/blueprints/ping.py
diff --git a/u10/blueprints/policies.py b/v0.11.0python_final/u10/blueprints/policies.py
similarity index 100%
rename from u10/blueprints/policies.py
rename to v0.11.0python_final/u10/blueprints/policies.py
diff --git a/u10/blueprints/protocols.py b/v0.11.0python_final/u10/blueprints/protocols.py
similarity index 100%
rename from u10/blueprints/protocols.py
rename to v0.11.0python_final/u10/blueprints/protocols.py
diff --git a/u10/blueprints/qrcodes.py b/v0.11.0python_final/u10/blueprints/qrcodes.py
similarity index 100%
rename from u10/blueprints/qrcodes.py
rename to v0.11.0python_final/u10/blueprints/qrcodes.py
diff --git a/u10/blueprints/results.py b/v0.11.0python_final/u10/blueprints/results.py
similarity index 100%
rename from u10/blueprints/results.py
rename to v0.11.0python_final/u10/blueprints/results.py
diff --git a/u10/blueprints/rules.py b/v0.11.0python_final/u10/blueprints/rules.py
similarity index 100%
rename from u10/blueprints/rules.py
rename to v0.11.0python_final/u10/blueprints/rules.py
diff --git a/u10/blueprints/sessions.py b/v0.11.0python_final/u10/blueprints/sessions.py
similarity index 100%
rename from u10/blueprints/sessions.py
rename to v0.11.0python_final/u10/blueprints/sessions.py
diff --git a/u10/requirements.txt b/v0.11.0python_final/u10/requirements.txt
similarity index 100%
rename from u10/requirements.txt
rename to v0.11.0python_final/u10/requirements.txt
diff --git a/u10/static/favicon.ico b/v0.11.0python_final/u10/static/favicon.ico
similarity index 100%
rename from u10/static/favicon.ico
rename to v0.11.0python_final/u10/static/favicon.ico
diff --git a/u10/static/teapot.png b/v0.11.0python_final/u10/static/teapot.png
similarity index 100%
rename from u10/static/teapot.png
rename to v0.11.0python_final/u10/static/teapot.png
diff --git a/u10/static/tpm404.png b/v0.11.0python_final/u10/static/tpm404.png
similarity index 100%
rename from u10/static/tpm404.png
rename to v0.11.0python_final/u10/static/tpm404.png
diff --git a/u10/templates/attest.html b/v0.11.0python_final/u10/templates/attest.html
similarity index 100%
rename from u10/templates/attest.html
rename to v0.11.0python_final/u10/templates/attest.html
diff --git a/u10/templates/attestall.html b/v0.11.0python_final/u10/templates/attestall.html
similarity index 100%
rename from u10/templates/attestall.html
rename to v0.11.0python_final/u10/templates/attestall.html
diff --git a/u10/templates/base.html b/v0.11.0python_final/u10/templates/base.html
similarity index 100%
rename from u10/templates/base.html
rename to v0.11.0python_final/u10/templates/base.html
diff --git a/u10/templates/claim.html b/v0.11.0python_final/u10/templates/claim.html
similarity index 100%
rename from u10/templates/claim.html
rename to v0.11.0python_final/u10/templates/claim.html
diff --git a/u10/templates/claimprettyprint/firmwareinfo.html b/v0.11.0python_final/u10/templates/claimprettyprint/firmwareinfo.html
similarity index 100%
rename from u10/templates/claimprettyprint/firmwareinfo.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/firmwareinfo.html
diff --git a/u10/templates/claimprettyprint/imalog.html b/v0.11.0python_final/u10/templates/claimprettyprint/imalog.html
similarity index 100%
rename from u10/templates/claimprettyprint/imalog.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/imalog.html
diff --git a/u10/templates/claimprettyprint/incorrecttype.html b/v0.11.0python_final/u10/templates/claimprettyprint/incorrecttype.html
similarity index 100%
rename from u10/templates/claimprettyprint/incorrecttype.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/incorrecttype.html
diff --git a/u10/templates/claimprettyprint/pcrs.html b/v0.11.0python_final/u10/templates/claimprettyprint/pcrs.html
similarity index 100%
rename from u10/templates/claimprettyprint/pcrs.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/pcrs.html
diff --git a/u10/templates/claimprettyprint/quote.html b/v0.11.0python_final/u10/templates/claimprettyprint/quote.html
similarity index 100%
rename from u10/templates/claimprettyprint/quote.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/quote.html
diff --git a/u10/templates/claimprettyprint/systeminfo.html b/v0.11.0python_final/u10/templates/claimprettyprint/systeminfo.html
similarity index 100%
rename from u10/templates/claimprettyprint/systeminfo.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/systeminfo.html
diff --git a/u10/templates/claimprettyprint/uefieventlog.html b/v0.11.0python_final/u10/templates/claimprettyprint/uefieventlog.html
similarity index 100%
rename from u10/templates/claimprettyprint/uefieventlog.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/uefieventlog.html
diff --git a/u10/templates/claimprettyprint/uefieventlograw.html b/v0.11.0python_final/u10/templates/claimprettyprint/uefieventlograw.html
similarity index 100%
rename from u10/templates/claimprettyprint/uefieventlograw.html
rename to v0.11.0python_final/u10/templates/claimprettyprint/uefieventlograw.html
diff --git a/u10/templates/claims.html b/v0.11.0python_final/u10/templates/claims.html
similarity index 100%
rename from u10/templates/claims.html
rename to v0.11.0python_final/u10/templates/claims.html
diff --git a/u10/templates/editraw.html b/v0.11.0python_final/u10/templates/editraw.html
similarity index 100%
rename from u10/templates/editraw.html
rename to v0.11.0python_final/u10/templates/editraw.html
diff --git a/u10/templates/element.html b/v0.11.0python_final/u10/templates/element.html
similarity index 100%
rename from u10/templates/element.html
rename to v0.11.0python_final/u10/templates/element.html
diff --git a/u10/templates/elementanalytics.html b/v0.11.0python_final/u10/templates/elementanalytics.html
similarity index 100%
rename from u10/templates/elementanalytics.html
rename to v0.11.0python_final/u10/templates/elementanalytics.html
diff --git a/u10/templates/elements.html b/v0.11.0python_final/u10/templates/elements.html
similarity index 100%
rename from u10/templates/elements.html
rename to v0.11.0python_final/u10/templates/elements.html
diff --git a/u10/templates/elements_archived.html b/v0.11.0python_final/u10/templates/elements_archived.html
similarity index 100%
rename from u10/templates/elements_archived.html
rename to v0.11.0python_final/u10/templates/elements_archived.html
diff --git a/u10/templates/expectedvalue.html b/v0.11.0python_final/u10/templates/expectedvalue.html
similarity index 100%
rename from u10/templates/expectedvalue.html
rename to v0.11.0python_final/u10/templates/expectedvalue.html
diff --git a/u10/templates/expectedvalues.html b/v0.11.0python_final/u10/templates/expectedvalues.html
similarity index 100%
rename from u10/templates/expectedvalues.html
rename to v0.11.0python_final/u10/templates/expectedvalues.html
diff --git a/u10/templates/hashes.html b/v0.11.0python_final/u10/templates/hashes.html
similarity index 100%
rename from u10/templates/hashes.html
rename to v0.11.0python_final/u10/templates/hashes.html
diff --git a/u10/templates/help/attestparametershelp.html b/v0.11.0python_final/u10/templates/help/attestparametershelp.html
similarity index 100%
rename from u10/templates/help/attestparametershelp.html
rename to v0.11.0python_final/u10/templates/help/attestparametershelp.html
diff --git a/u10/templates/home/404.html b/v0.11.0python_final/u10/templates/home/404.html
similarity index 100%
rename from u10/templates/home/404.html
rename to v0.11.0python_final/u10/templates/home/404.html
diff --git a/u10/templates/home/418.html b/v0.11.0python_final/u10/templates/home/418.html
similarity index 100%
rename from u10/templates/home/418.html
rename to v0.11.0python_final/u10/templates/home/418.html
diff --git a/u10/templates/home/451.html b/v0.11.0python_final/u10/templates/home/451.html
similarity index 100%
rename from u10/templates/home/451.html
rename to v0.11.0python_final/u10/templates/home/451.html
diff --git a/u10/templates/home/about.html b/v0.11.0python_final/u10/templates/home/about.html
similarity index 100%
rename from u10/templates/home/about.html
rename to v0.11.0python_final/u10/templates/home/about.html
diff --git a/u10/templates/home/help.html b/v0.11.0python_final/u10/templates/home/help.html
similarity index 100%
rename from u10/templates/home/help.html
rename to v0.11.0python_final/u10/templates/home/help.html
diff --git a/u10/templates/home/home.html b/v0.11.0python_final/u10/templates/home/home.html
similarity index 100%
rename from u10/templates/home/home.html
rename to v0.11.0python_final/u10/templates/home/home.html
diff --git a/u10/templates/informationpages/protocols.html b/v0.11.0python_final/u10/templates/informationpages/protocols.html
similarity index 100%
rename from u10/templates/informationpages/protocols.html
rename to v0.11.0python_final/u10/templates/informationpages/protocols.html
diff --git a/u10/templates/informationpages/qrcodes.html b/v0.11.0python_final/u10/templates/informationpages/qrcodes.html
similarity index 100%
rename from u10/templates/informationpages/qrcodes.html
rename to v0.11.0python_final/u10/templates/informationpages/qrcodes.html
diff --git a/u10/templates/informationpages/rules.html b/v0.11.0python_final/u10/templates/informationpages/rules.html
similarity index 100%
rename from u10/templates/informationpages/rules.html
rename to v0.11.0python_final/u10/templates/informationpages/rules.html
diff --git a/u10/templates/log.html b/v0.11.0python_final/u10/templates/log.html
similarity index 100%
rename from u10/templates/log.html
rename to v0.11.0python_final/u10/templates/log.html
diff --git a/u10/templates/newraw.html b/v0.11.0python_final/u10/templates/newraw.html
similarity index 100%
rename from u10/templates/newraw.html
rename to v0.11.0python_final/u10/templates/newraw.html
diff --git a/u10/templates/pcrschemas.html b/v0.11.0python_final/u10/templates/pcrschemas.html
similarity index 100%
rename from u10/templates/pcrschemas.html
rename to v0.11.0python_final/u10/templates/pcrschemas.html
diff --git a/u10/templates/ping.html b/v0.11.0python_final/u10/templates/ping.html
similarity index 100%
rename from u10/templates/ping.html
rename to v0.11.0python_final/u10/templates/ping.html
diff --git a/u10/templates/policies.html b/v0.11.0python_final/u10/templates/policies.html
similarity index 100%
rename from u10/templates/policies.html
rename to v0.11.0python_final/u10/templates/policies.html
diff --git a/u10/templates/policy.html b/v0.11.0python_final/u10/templates/policy.html
similarity index 100%
rename from u10/templates/policy.html
rename to v0.11.0python_final/u10/templates/policy.html
diff --git a/u10/templates/result.html b/v0.11.0python_final/u10/templates/result.html
similarity index 100%
rename from u10/templates/result.html
rename to v0.11.0python_final/u10/templates/result.html
diff --git a/u10/templates/results.html b/v0.11.0python_final/u10/templates/results.html
similarity index 100%
rename from u10/templates/results.html
rename to v0.11.0python_final/u10/templates/results.html
diff --git a/u10/templates/session.html b/v0.11.0python_final/u10/templates/session.html
similarity index 100%
rename from u10/templates/session.html
rename to v0.11.0python_final/u10/templates/session.html
diff --git a/u10/templates/sessions.html b/v0.11.0python_final/u10/templates/sessions.html
similarity index 100%
rename from u10/templates/sessions.html
rename to v0.11.0python_final/u10/templates/sessions.html
diff --git a/u10/u10.conf b/v0.11.0python_final/u10/u10.conf
similarity index 100%
rename from u10/u10.conf
rename to v0.11.0python_final/u10/u10.conf
diff --git a/u10/u10.py b/v0.11.0python_final/u10/u10.py
similarity index 100%
rename from u10/u10.py
rename to v0.11.0python_final/u10/u10.py
diff --git a/utilities/Database/README.md b/v0.11.0python_final/utilities/Database/README.md
similarity index 100%
rename from utilities/Database/README.md
rename to v0.11.0python_final/utilities/Database/README.md
diff --git a/utilities/Database/adbingest.py b/v0.11.0python_final/utilities/Database/adbingest.py
similarity index 100%
rename from utilities/Database/adbingest.py
rename to v0.11.0python_final/utilities/Database/adbingest.py
diff --git a/utilities/Database/clearDB.js b/v0.11.0python_final/utilities/Database/clearDB.js
similarity index 100%
rename from utilities/Database/clearDB.js
rename to v0.11.0python_final/utilities/Database/clearDB.js
diff --git a/utilities/Database/hashes.json b/v0.11.0python_final/utilities/Database/hashes.json
similarity index 100%
rename from utilities/Database/hashes.json
rename to v0.11.0python_final/utilities/Database/hashes.json
diff --git a/utilities/Database/pcrschemas.json b/v0.11.0python_final/utilities/Database/pcrschemas.json
similarity index 100%
rename from utilities/Database/pcrschemas.json
rename to v0.11.0python_final/utilities/Database/pcrschemas.json
diff --git a/utilities/Database/policies.json b/v0.11.0python_final/utilities/Database/policies.json
similarity index 100%
rename from utilities/Database/policies.json
rename to v0.11.0python_final/utilities/Database/policies.json
diff --git a/utilities/README.md b/v0.11.0python_final/utilities/README.md
similarity index 100%
rename from utilities/README.md
rename to v0.11.0python_final/utilities/README.md
diff --git a/utilities/TPMprovisioning/genakek.sh b/v0.11.0python_final/utilities/TPMprovisioning/genakek.sh
similarity index 100%
rename from utilities/TPMprovisioning/genakek.sh
rename to v0.11.0python_final/utilities/TPMprovisioning/genakek.sh
diff --git a/utilities/a10configurations/a10.conf b/v0.11.0python_final/utilities/a10configurations/a10.conf
similarity index 100%
rename from utilities/a10configurations/a10.conf
rename to v0.11.0python_final/utilities/a10configurations/a10.conf
diff --git a/utilities/dockercomposedeployment/a10.conf b/v0.11.0python_final/utilities/dockercomposedeployment/a10.conf
similarity index 100%
rename from utilities/dockercomposedeployment/a10.conf
rename to v0.11.0python_final/utilities/dockercomposedeployment/a10.conf
diff --git a/utilities/dockercomposedeployment/doc/README.md b/v0.11.0python_final/utilities/dockercomposedeployment/doc/README.md
similarity index 100%
rename from utilities/dockercomposedeployment/doc/README.md
rename to v0.11.0python_final/utilities/dockercomposedeployment/doc/README.md
diff --git a/utilities/dockercomposedeployment/doc/deployment.drawio b/v0.11.0python_final/utilities/dockercomposedeployment/doc/deployment.drawio
similarity index 100%
rename from utilities/dockercomposedeployment/doc/deployment.drawio
rename to v0.11.0python_final/utilities/dockercomposedeployment/doc/deployment.drawio
diff --git a/utilities/dockercomposedeployment/doc/deployment.png b/v0.11.0python_final/utilities/dockercomposedeployment/doc/deployment.png
similarity index 100%
rename from utilities/dockercomposedeployment/doc/deployment.png
rename to v0.11.0python_final/utilities/dockercomposedeployment/doc/deployment.png
diff --git a/utilities/dockercomposedeployment/docker-compose-traefik.yml b/v0.11.0python_final/utilities/dockercomposedeployment/docker-compose-traefik.yml
similarity index 100%
rename from utilities/dockercomposedeployment/docker-compose-traefik.yml
rename to v0.11.0python_final/utilities/dockercomposedeployment/docker-compose-traefik.yml
diff --git a/utilities/dockercomposedeployment/docker-compose.yml b/v0.11.0python_final/utilities/dockercomposedeployment/docker-compose.yml
similarity index 100%
rename from utilities/dockercomposedeployment/docker-compose.yml
rename to v0.11.0python_final/utilities/dockercomposedeployment/docker-compose.yml
diff --git a/utilities/dockercomposedeployment/mosquitto.conf b/v0.11.0python_final/utilities/dockercomposedeployment/mosquitto.conf
similarity index 100%
rename from utilities/dockercomposedeployment/mosquitto.conf
rename to v0.11.0python_final/utilities/dockercomposedeployment/mosquitto.conf
diff --git a/utilities/piFakeBoot/README.md b/v0.11.0python_final/utilities/piFakeBoot/README.md
similarity index 100%
rename from utilities/piFakeBoot/README.md
rename to v0.11.0python_final/utilities/piFakeBoot/README.md
diff --git a/utilities/piFakeBoot/install.eltt2 b/v0.11.0python_final/utilities/piFakeBoot/install.eltt2
similarity index 100%
rename from utilities/piFakeBoot/install.eltt2
rename to v0.11.0python_final/utilities/piFakeBoot/install.eltt2
diff --git a/utilities/piFakeBoot/install.tpm2tools b/v0.11.0python_final/utilities/piFakeBoot/install.tpm2tools
similarity index 100%
rename from utilities/piFakeBoot/install.tpm2tools
rename to v0.11.0python_final/utilities/piFakeBoot/install.tpm2tools
diff --git a/utilities/piFakeBoot/measure.eltt2.service b/v0.11.0python_final/utilities/piFakeBoot/measure.eltt2.service
similarity index 100%
rename from utilities/piFakeBoot/measure.eltt2.service
rename to v0.11.0python_final/utilities/piFakeBoot/measure.eltt2.service
diff --git a/utilities/piFakeBoot/measure.start.eltt2 b/v0.11.0python_final/utilities/piFakeBoot/measure.start.eltt2
similarity index 100%
rename from utilities/piFakeBoot/measure.start.eltt2
rename to v0.11.0python_final/utilities/piFakeBoot/measure.start.eltt2
diff --git a/utilities/piFakeBoot/measure.start.tpm2tools b/v0.11.0python_final/utilities/piFakeBoot/measure.start.tpm2tools
similarity index 100%
rename from utilities/piFakeBoot/measure.start.tpm2tools
rename to v0.11.0python_final/utilities/piFakeBoot/measure.start.tpm2tools
diff --git a/utilities/piFakeBoot/measure.tpm2tools.service b/v0.11.0python_final/utilities/piFakeBoot/measure.tpm2tools.service
similarity index 100%
rename from utilities/piFakeBoot/measure.tpm2tools.service
rename to v0.11.0python_final/utilities/piFakeBoot/measure.tpm2tools.service
diff --git a/utilities/piFakeBoot/measures1.d/1 b/v0.11.0python_final/utilities/piFakeBoot/measures1.d/1
similarity index 100%
rename from utilities/piFakeBoot/measures1.d/1
rename to v0.11.0python_final/utilities/piFakeBoot/measures1.d/1
diff --git a/utilities/piFakeBoot/measures1.d/2 b/v0.11.0python_final/utilities/piFakeBoot/measures1.d/2
similarity index 100%
rename from utilities/piFakeBoot/measures1.d/2
rename to v0.11.0python_final/utilities/piFakeBoot/measures1.d/2
diff --git a/utilities/piFakeBoot/measures1.d/3 b/v0.11.0python_final/utilities/piFakeBoot/measures1.d/3
similarity index 100%
rename from utilities/piFakeBoot/measures1.d/3
rename to v0.11.0python_final/utilities/piFakeBoot/measures1.d/3
diff --git a/utilities/piFakeBoot/measures1.d/4 b/v0.11.0python_final/utilities/piFakeBoot/measures1.d/4
similarity index 100%
rename from utilities/piFakeBoot/measures1.d/4
rename to v0.11.0python_final/utilities/piFakeBoot/measures1.d/4
diff --git a/utilities/piFakeBoot/measures1.d/5 b/v0.11.0python_final/utilities/piFakeBoot/measures1.d/5
similarity index 100%
rename from utilities/piFakeBoot/measures1.d/5
rename to v0.11.0python_final/utilities/piFakeBoot/measures1.d/5
diff --git a/utilities/piFakeBoot/measures256.d/1 b/v0.11.0python_final/utilities/piFakeBoot/measures256.d/1
similarity index 100%
rename from utilities/piFakeBoot/measures256.d/1
rename to v0.11.0python_final/utilities/piFakeBoot/measures256.d/1
diff --git a/utilities/piFakeBoot/measures256.d/2 b/v0.11.0python_final/utilities/piFakeBoot/measures256.d/2
similarity index 100%
rename from utilities/piFakeBoot/measures256.d/2
rename to v0.11.0python_final/utilities/piFakeBoot/measures256.d/2
diff --git a/utilities/piFakeBoot/measures256.d/3 b/v0.11.0python_final/utilities/piFakeBoot/measures256.d/3
similarity index 100%
rename from utilities/piFakeBoot/measures256.d/3
rename to v0.11.0python_final/utilities/piFakeBoot/measures256.d/3
diff --git a/utilities/piFakeBoot/measures256.d/4 b/v0.11.0python_final/utilities/piFakeBoot/measures256.d/4
similarity index 100%
rename from utilities/piFakeBoot/measures256.d/4
rename to v0.11.0python_final/utilities/piFakeBoot/measures256.d/4
diff --git a/utilities/piFakeBoot/measures256.d/5 b/v0.11.0python_final/utilities/piFakeBoot/measures256.d/5
similarity index 100%
rename from utilities/piFakeBoot/measures256.d/5
rename to v0.11.0python_final/utilities/piFakeBoot/measures256.d/5